﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеПроизводством
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С ЗАКАЗАМИ
		// Функция возвращает флаг использования заказов на производство.
		//

		public object УчетЗатратПоЗаказамНаПроизводство(/*Дата, Организация = Неопределено, Учет = "Упр"*/)
		{
			//УчетЗатратПоЗаказамНаПроизводство = Ложь;
			if(true/*Учет = "Упр"*/)
			{
				//УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиУпр(Дата, Ложь);
				if(true/*ЗначениеЗаполнено(УчетнаяПолитика)*/)
				{
					//УчетЗатратПоЗаказамНаПроизводство = УчетнаяПолитика.УчетЗатратПоЗаказамНаПроизводство;
				}
			}
			return null;
		}
		// УчетЗатратПоЗаказамНаПроизводство()
		// Функция определяет заказ для учета производственных затрат и выпуска продукции.
		//

		public object ПолучитьЗаказДляУчетаЗатрат(/*Заказ, ЗаказНаПроизводство = Неопределено, УчетЗатратПоЗаказамНаПроизводство, ИспользоватьЗаказыНаПроизводство = Неопределено*/)
		{
			if(true/*ИспользоватьЗаказыНаПроизводство = Неопределено*/)
			{
				//ИспользоватьЗаказыНаПроизводство = УправлениеЗаказами.ИспользоватьЗаказыНаПроизводство();
			}
			//ЗаказДляЗатрат = Неопределено;
			if(true/*ЗначениеЗаполнено(Заказ) 
	   И ТипЗнч(Заказ) = Тип("ДокументСсылка.ЗаказПокупателя")*/)
			{
				//ЗаказДляЗатрат = Заказ;
			}
			return null;
		}
		// ПолучитьЗаказДляУчетаЗатрат()
		// Процедура движения по регистру "Заказы на производство".
		//

		public void ДвижениеПоЗаказамНаПроизводство(/*ДокументОбъект, ТаблицаПоТоварам, ИмяТабличнойЧасти, СтруктураШапкиДокумента, РежимПроведения, Отказ, Заголовок*/)
		{
			//ТаблицаПоЗаказам = ТаблицаПоТоварам.Скопировать();
			//КолвоЭлементов = ТаблицаПоЗаказам.Количество();
			//ЕстьКачество   = ТаблицаПоЗаказам.Колонки.Найти("Качество") <> Неопределено;
			if(true/*ТаблицаПоЗаказам.Количество() = 0*/)
			{
			}
			//НаборДвижений = ДокументОбъект.Движения.ЗаказыНаПроизводство;
			/*// Проверка остатков
*/
			//НаборДвижений.КонтрольОстатков(ДокументОбъект, ИмяТабличнойЧасти, СтруктураШапкиДокумента, Отказ, Заголовок, РежимПроведения);
			if(true/*Отказ*/)
			{
			}
			//ТаблицаДвижений = НаборДвижений.Выгрузить();
			//ТаблицаДвижений.Очистить();
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоЗаказам, ТаблицаДвижений);
			//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Подразделение, "Подразделение");
			//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ВидВоспроизводства, "ВидВоспроизводства");
			//НаборДвижений.мПериод          = ДокументОбъект.Дата;
			//НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
			//НаборДвижений.ВыполнитьРасход();
			/*// Чтобы процедура погашение потребностей по производственным заказам могла определить факт
*/
			/*// закрытия заказа на производство, и в этом случае выполнить полное погашение потребностей по заказу на производство
*/
			//НаборДвижений.Записать(Ложь);
		}
		// ДвижениеПоЗаказамНаПроизводство()
		// Процедура управляет видмостью ячеек ЗаказВыпуск, ЗаказРезерв в строке таб.части
		//

		public void ВидимостьЯчеекЗаказы(/*Элемент, ИспользоватьЗаказы, ИспользоватьНаправленияВыпуска, ИспользоватьНаработку, ДанныеСтроки, ОформлениеСтроки*/)
		{
			/*//Значение параметра ИспользоватьНаправленияВыпуска пока не используется, оставлен временно на всякий случай
*/
			/*// Если заказы не используем все колонки должны быть погашены в процедуре установке видимости.
*/
			if(true/*ИспользоватьЗаказы*/)
			{
				if(true/*ОформлениеСтроки.Ячейки.Найти("Заказы") <> Неопределено*/)
				{
					//ОформлениеСтроки.Ячейки.Заказы.Видимость      = Ложь;
					//ОформлениеСтроки.Ячейки.Заказы.ТолькоПросмотр = Истина;
				}
				if(true/*ИспользоватьНаработку = Неопределено*/)
				{
					//ФлагВыпуск = Истина;
				}
				if(true/*Элемент.Имя = "ВозвратныеОтходы"*/)
				{
					/*//Возвратные отходы всегда приходуются на склад
*/
					//ФлагРезерв = истина;
				}
				if(true/*ОформлениеСтроки.Ячейки.Найти("ЗаказВыпуска") <> Неопределено*/)
				{
					//ОформлениеСтроки.Ячейки.ЗаказВыпуска.Видимость      =    ФлагВыпуск;
					//ОформлениеСтроки.Ячейки.ЗаказВыпуска.ТолькоПросмотр = НЕ ФлагВыпуск;
				}
				if(true/*ОформлениеСтроки.Ячейки.Найти("ЗаказРезерв") <> Неопределено*/)
				{
					//ОформлениеСтроки.Ячейки.ЗаказРезерв .Видимость      =    ФлагРезерв;
					//ОформлениеСтроки.Ячейки.ЗаказРезерв .ТолькоПросмотр = НЕ ФлагРезерв;
				}
			}
		}
		// ВидимостьЯчеекЗаказы()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ СО СПЕЦИФИКАЦИЯМИ НОМЕНКЛАТУРЫ
		// Процедура устанавлавает спецификацию номенклатуры по умолчанию
		//

		public void УстановитьСпецификациюПоУмолчанию(/*Номенклатура, Спецификация, ДатаДок, Подразделение = неопределено*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(Номенклатура)*/)
			{
				//Спецификация = Справочники.СпецификацииНоменклатуры.ПустаяСсылка();
			}
		}
		// УстановитьСпецификациюПоУмолчанию()
		// Функция возвращает признак использования вида спецификации, в зависимости от установки в конфигурации
		// признака использования только сборочных спецификаций.
		//

		public object ИспользоватьВидСпецификации(/*ИспользоватьТолькоСборочныеСпецификации*/)
		{
			if(true/*ТипЗнч(ИспользоватьТолькоСборочныеСпецификации) = Тип("Булево")*/)
			{
			}
			return null;
		}
		// ИспользоватьВидСпецификации()
		// Делает спецификацию основной для выходных изделий
		//
		// Параметры:
		//	Спецификация	- <СправочникСсылка.СпецификацииНоменклатуры>, спецификация, которую требуется сделать основной
		//	ДатаЗаписи		- <Дата>, дата начиная с которой спецификация будет основной
		//	Номенклатура	- <СправочникСсылка.Номенклатура>, выходное изделение для которого спецификация будет основной,
		//						если не указано, то спецификация будет основной для всех выходных изделий
		//

		public void ЗаписатьОсновнуюСпецификацию(/*Спецификация, ДатаЗаписи, Номенклатура = Неопределено*/)
		{
			//Запрос = Новый Запрос;
			/*ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	СпецификацииНоменклатурыВыходныеИзделия.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	               |	СпецификацииНоменклатурыВыходныеИзделия.Номенклатура КАК Номенклатура
	               |ИЗ
	               |	Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК СпецификацииНоменклатурыВыходныеИзделия
	               |ГДЕ
	               |	СпецификацииНоменклатурыВыходныеИзделия.Ссылка = &СпецификацияНоменклатуры";*/
			if(true/*Номенклатура <> Неопределено*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
				|	И СпецификацииНоменклатурыВыходныеИзделия.Номенклатура = &Номенклатура";*/
				//Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
			}
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("СпецификацияНоменклатуры", Спецификация);
			//Результат = Запрос.Выполнить();
			//Выборка = Результат.Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//НоваяЗапись = РегистрыСведений.ОсновныеСпецификацииНоменклатуры.СоздатьМенеджерЗаписи();
				//НоваяЗапись.Период                     = ДатаЗаписи;
				//НоваяЗапись.Номенклатура               = Выборка.Номенклатура;
				//НоваяЗапись.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
				//НоваяЗапись.СпецификацияНоменклатуры   = Спецификация;
				//НоваяЗапись.Записать(Истина);
			}
			//;;
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// Функция возвращает имя элемента перечисления
		// Параметры:
		//		ЗначПеречисления - значение перечисления
		// Возврат:
		//		Имя элемента перечисления в метаданных
		//

		public object ПолучитьИмяЭлементаПеречисления(/*Знач ЭлементПеречисления*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ЭлементПеречисления)*/)
			{
			}
			return null;
		}
		// ПолучитьИмяЭлементаПеречисления()
		// Функция ДокументыВПериоде()
		//
		// Возвращает массив документов в периоде, соответствующем
		// дате переданного документа и того же типа.
		// Данную функцию можно использовать, например для проверки
		// уникальности документа данного типа в указанном периоде
		// Выбираются проведенные и не помеченые на удаление документы.
		// Переданный в качестве параметра документ не попадает в выборку.
		//
		//	Параметры:
		//		Док - документ
		//  	Периодичность - период интервала. Например
		//			Док.Дата = '15.01.2004', периодичность = "Месяц", тогда
		//			будут выбиратся документы за январь 2004 года.
		//	  		Возможные значения периодичности = "Год", "Квартал", "Месяц", "Неделя", "День"
		//	  		По умолчанию - "Месяц"
		//  	СтруктРеквизитов - структура в которой в качестве ключа - имя реквизита
		//			документа, в качестве значения - значение, которое должен содержать реквизит документа.
		//			Будут выбираться документы в которых значение реквизита совпадает с указанным
		//		 	значением.
		//
		//	Возврат:
		//		Массив документов.

		public object ДокументыВПериоде(/*Док, Периодичность = "Месяц", СтруктРеквизитов = Неопределено*/)
		{
			/*// определим период в котором будем искать
*/
			if(true/*Периодичность = "Год"*/)
			{
				//НачДата = НачалоГода(Док.Дата);
				//КонДата = КонецГода (Док.Дата);
			}
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	Док.Ссылка КАК Док
	|
	|ИЗ
	|   Документ." + Док.Метаданные().Имя + " КАК Док
	|
	|ГДЕ
	|   Док.Дата МЕЖДУ &НачДата И &КонДата И
	|   Док.Проведен И НЕ Док.ПометкаУдаления И
	|   НЕ Док.Ссылка = &ДокСсылка";*/
			//Запрос = Новый Запрос;
			if(true/*Не СтруктРеквизитов = Неопределено*/)
			{
			}
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("НачДата",   НачДата);
			//Запрос.УстановитьПараметр("КонДата",   КонДата);
			//Запрос.УстановитьПараметр("ДокСсылка", Док.Ссылка);
			return null;
		}
		// ДокументыВПериоде()
		// Функция копирует структуру одной таблицы значений в новую таблицу значений
		// Параметры:
		// 		ТабШаблон - таблица структуру которой мы копируем
		//      ИменаКол  - имена колонок, разделенные запятыми, которые надо скопировать
		//                  необязателен. По умолчанию - все колонки
		//
		// Возврат:
		//		Таблица значений соответствующей структуры
		//

		public object КопироватьСтруктуруТаблицыЗначений(/*ТабШаблон, ИменаКол = "", ТабПриемник = Неопределено*/)
		{
			if(true/*ТабПриемник = Неопределено*/)
			{
				//ТабКопия = Новый ТаблицаЗначений;
			}
			if(true/*ПустаяСтрока(ИменаКол)*/)
			{
			}
			return null;
		}
		// КопироватьСтруктуруТаблицыЗначений()
		// Функция возвращает признак "Только обороты" для указанного вида субконто на счете.
		// Возвращает значение "Истина", если на счете для субконто установлен признак "Только обороты".
		//

		public object ПроверитьСубконтоНаОборотное(/*Счет, ИмяСубконто*/)
		{
			if(true/*Счет = Неопределено ИЛИ Счет.Пустая()*/)
			{
			}
			if(true/*ТипЗнч(ИмяСубконто) = Тип("Число")*/)
			{
				if(true/*ИмяСубконто > Счет.ВидыСубконто.Количество()*/)
				{
				}
				//ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто;
			}
			//ВидыСубконтоСтрока = Счет.ВидыСубконто.Найти(ВидСубк);
			if(true/*ВидыСубконтоСтрока = Неопределено*/)
			{
			}
			return null;
		}
		// ПроверитьСубконтоНаОборотное()
		// Функция формирует список счетов, на которых учитываются затраты
		//
		//		Параметры: ТипУчета - тип учет, возможные значения
		//						"Бух" - счета хорасчетного плана счетов
		//			            "Нал" = счета налогового плана счетов
		//                 СчетаСтрокой - список счетов. Строка разделенная запятыми ","
		//				   Позволяет указывать любые счета. Значение по умолчанию:
		//						"20, 23, 25, 26, 28",      если тип учета "Бух"
		//						"Н20, Н23, Н25, Н26, Н28", если тип учета "Нал"
		//		Возврат: Список значений со счетами.
		//

		public object ПолучитьЗатратныеСчета(/*ТипУчета, Знач СчетаСтрокой = "", БезГрупп = Ложь*/)
		{
			if(true/*ТипУчета = "Бух"*/)
			{
				//ПланСчетов    = ПланыСчетов.Хозрасчетный;
				//ПланСчетовСтр = "Хозрасчетный";
				if(true/*ПустаяСтрока(СчетаСтрокой)*/)
				{
					//СчетаСтрокой = "10, 20, 21, 23, 25, 26, 28, 29, 41, 43, 60, 62";
				}
			}
			return null;
		}
		// ПолучитьЗатратныеСчета()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ ПО ОСТАТКАМ
		// Подготавливает (заполняет) шапку документа для передачи объекта в общую процедуру
		// заполнения остатками затрат.
		//
		// Вызывается из команд заполнения табличной части данными по определенному виду учета
		// (без учета флагов в шапке документа)
		//
		// Параметры
		//  ВидУчета - вид учета, данными которого надо заполнять документ
		//           - Неопределено, если надо заполнять данным всех видов учета
		//  РеквизитыДоИзменения - в эту переменную будет возвращена структура со значениями
		//             реквизитов шапки до изменения в этой процедуре

		public void ПодготовитьШапкуДокументаДляЗаполненияОстаткамиЗатрат(/*Объект, ВидУчета, РеквизитыДоИзменения*/)
		{
			/*// В процедуру заполнения по остаткам затрат следует передавать документ-объект
*/
			/*// с реквизитами, заполненными особым образом.
*/
			/*// Для того, чтобы не потерять значения реквизитов, запомним их,
*/
			/*// после вызова процедуры заполнения - восстановим.
*/
			//РеквизитыДоИзменения = Новый Структура();
			//РеквизитыДоИзменения.Вставить("ОтражатьВУправленческомУчете");
			//РеквизитыДоИзменения.Вставить("ОтражатьВБухгалтерскомУчете");
			//РеквизитыДоИзменения.Вставить("ОтражатьВНалоговомУчете");
			//РеквизитыДоИзменения.Вставить("ПодразделениеОрганизации");
			//ЗаполнитьЗначенияСвойств(РеквизитыДоИзменения, Объект);
			//ЗаполнениеДаннымиУпрУчета  = (ВидУчета = Неопределено) ИЛИ (ВидУчета = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете);
			//ЗаполнениеДаннымиРеглУчета = ВидУчета <> Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете;
			//Объект.ОтражатьВУправленческомУчете = ЗаполнениеДаннымиУпрУчета;
			//Объект.ОтражатьВБухгалтерскомУчете  = ЗаполнениеДаннымиРеглУчета;
			//Объект.ОтражатьВНалоговомУчете      = ЗаполнениеДаннымиРеглУчета;
			/*// При УСН он будет снят (см. ниже)
*/
			if(true/*ЗаполнениеДаннымиРеглУчета*/)
			{
				/*// Подразделение организации должно быть заполнено
*/
				if(true/*НЕ ЗначениеЗаполнено(Объект.ПодразделениеОрганизации)*/)
				{
					/*Объект.ПодразделениеОрганизации     = УправлениеЗатратами.ПолучитьПодразделениеОрганизации(
				Объект.Организация, 
				Объект.Подразделение, 
				Истина);*/
				}
				/*// Флаг "ОтражатьВНалоговомУчете" не следует устанавливать, если не УСН
*/
				if(true/*НалоговыйУчетУСН.ПрименениеУСН(Объект.Организация, Объект.Дата)*/)
				{
					//Объект.ОтражатьВНалоговомУчете = Ложь;
				}
			}
		}
		// Функция формирует текст запроса по остаткам незавершенного производства.
		//
		// Возвращаемое значение:
		//	Строка - Текст запроса
		//

		public object СформироватьТекстЗапросаПоОстаткамЗатратРасширеннаяАналитика(/*ЕстьСчетЗатратНУ*/)
		{
			/*ТекстЗапроса = "
	|	ВЫБРАТЬ
	|		//ДляУпрУчета 3 КАК ИндексУчета,
	|		//ДляБухУчета 2 КАК ИндексУчета,
	|		РегистрАналитикаУчетаЗатрат.Затрата,
	|		РегистрАналитикаУчетаЗатрат.ХарактеристикаЗатраты,
	|		РегистрАналитикаУчетаЗатрат.СерияЗатраты,
	|		РегистрАналитикаУчетаЗатрат.СтатьяЗатрат,
	|		
	|		РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	|		РегистрАналитикаУчетаПартий.Заказ,
	|		
	|		РегистрАналитикаУчетаЗатрат.Затрата.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	|		РегистрАналитикаУчетаЗатрат.Затрата.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
	|
	|		ЕСТЬNULL(РегламентныеДокументы.ЕстьРасчетСебестоимостиВыпуска, Ложь) КАК ЕстьРасчетСебестоимостиВыпуска,
	|		
	|		//ДляУпрУчета Неопределено КАК СчетЗатрат,
	|		//ДляУпрУчета Неопределено КАК СчетЗатратНУ,
	|		
	|		//ДляБухУчета РегистрАналитикаВидаУчета.СчетУчета КАК СчетЗатрат,
	|		//ДляБухУчета ВЫБОР КОГДА &ЕстьСчетЗатратНУ 
	|		//ДляБухУчета ТОГДА РегистрАналитикаВидаУчета.СчетУчетаНУ
	|		//ДляБухУчета ИНАЧЕ Неопределено КОНЕЦ КАК СчетЗатратНУ,
	|		
	|		//ДляУпрУчета СУММА(УчетЗатрат.КоличествоОстаток) КАК Количество,
	|		//ДляУпрУчета СУММА(0) КАК КоличествоБух,
	|		//ДляУпрУчета СУММА(0) КАК КоличествоНал,
	|
	|		//ДляБухУчета СУММА(0) КАК Количество,
	|		//ДляБухУчета СУММА(УчетЗатрат.КоличествоОстаток) КАК КоличествоБух,
	|		//ДляБухУчета СУММА(УчетЗатрат.КоличествоНУОстаток) КАК КоличествоНал,
	|
	|		//ДляУпрУчета СУММА(УчетЗатрат.СтоимостьОстаток) КАК Сумма,
	|		//ДляУпрУчета СУММА(0) КАК СуммаБух,
	|		//ДляУпрУчета СУММА(0) КАК СуммаНал
	|		
	|		//ДляБухУчета СУММА(0) КАК Сумма,
	|		//ДляБухУчета СУММА(УчетЗатрат.СтоимостьОстаток) КАК СуммаБух,
	|		//ДляБухУчета СУММА(УчетЗатрат.СтоимостьНУОстаток + УчетЗатрат.ПостояннаяРазницаОстаток) КАК СуммаНал
	|		
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл%.Остатки(&КонГраница, 
	|			АналитикаВидаУчета В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|				ГДЕ
	|					РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)
	|					//ДляУпрУчета И Подразделение = &Подразделение
	|					//ДляРеглУчета И Организация = &Организация
	|					//ДляРеглУчета И ПодразделениеОрганизации = &ПодразделениеОрганизации
	|				)
	|			И АналитикаУчетаЗатрат В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
	|				ГДЕ
	|					ИСТИНА
	|					//ХарактерЗатрат И ХарактерЗатрат В (&ХарактерЗатрат)
	|					//Материальные И Затрата.ВидНоменклатуры.ТипНоменклатуры <> &Услуга
	|					//Материальные И СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|					//Материальные И Не СтатьяЗатрат.СтатусМатериальныхЗатрат В (&СтатусыМатериальныхЗатрат)
	|					//Нематериальные И (СтатьяЗатрат.ВидЗатрат <> ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|					//Нематериальные 	ИЛИ ХарактерЗатрат <> ЗНАЧЕНИЕ(Перечисление.ХарактерЗатрат.ПроизводственныеРасходы))
	|					//ЕстьСтатьяЗатрат И СтатьяЗатрат = &СтатьяЗатрат
	|				)
	|			//ЕстьЗаказ И АналитикаУчетаПартий В (
	|			//ЕстьЗаказ 	ВЫБРАТЬ
	|			//ЕстьЗаказ 		Ссылка
	|			//ЕстьЗаказ 	ИЗ
	|			//ЕстьЗаказ 		РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|			//ЕстьЗаказ 	ГДЕ
	|			//ЕстьЗаказ 		Заказ = &Заказ
	|			//ЕстьЗаказ 	)
	|			
	|		) КАК УчетЗатрат
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|		ПО
	|			УчетЗатрат.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
	|		ПО
	|			УчетЗатрат.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка
	|			
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	|		ПО
	|			УчетЗатрат.АналитикаРаспределенияЗатрат = РегистрАналитикаРаспределенияЗатрат.Ссылка
	|			
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|		ПО
	|			УчетЗатрат.АналитикаУчетаПартий = РегистрАналитикаУчетаПартий.Ссылка
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ	ПЕРВЫЕ 1
	|			УчетЗатрат.Регистратор,
	|			Истина КАК ЕстьРасчетСебестоимостиВыпуска
	|		ИЗ
	|			РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|		ГДЕ
	|			УчетЗатрат.Период МЕЖДУ &НачДата И &КонДата
	|			И УчетЗатрат.Регистратор ССЫЛКА Документ.РасчетСебестоимостиВыпуска
	|			И УчетЗатрат.АналитикаВидаУчета В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|				ГДЕ
	|					//ДляУпрУчета Истина
	|					//ДляРеглУчета Организация = &Организация
	|				)
	|		
	|		) КАК РегламентныеДокументы
	|	ПО
	|		Истина
	|СГРУППИРОВАТЬ ПО
	|		РегистрАналитикаУчетаЗатрат.Затрата,
	|		РегистрАналитикаУчетаЗатрат.ХарактеристикаЗатраты,
	|		РегистрАналитикаУчетаЗатрат.СерияЗатраты,
	|		РегистрАналитикаУчетаЗатрат.СтатьяЗатрат,
	|		
	|		РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	|		РегистрАналитикаУчетаПартий.Заказ,
	|		
	|		РегистрАналитикаУчетаЗатрат.Затрата.ЕдиницаХраненияОстатков,
	|		РегистрАналитикаУчетаЗатрат.Затрата.ЕдиницаХраненияОстатков.Коэффициент,
	|
	|		ЕСТЬNULL(РегламентныеДокументы.ЕстьРасчетСебестоимостиВыпуска, Ложь)
	|		
	|		//ДляБухУчета , РегистрАналитикаВидаУчета.СчетУчета,
	|		//ДляБухУчета ВЫБОР КОГДА &ЕстьСчетЗатратНУ 
	|		//ДляБухУчета ТОГДА РегистрАналитикаВидаУчета.СчетУчетаНУ
	|		//ДляБухУчета ИНАЧЕ Неопределено КОНЕЦ
    |";*/
			return null;
		}
		// СформироватьТекстЗапросаПоОстаткамЗатратРасширеннаяАналитика()
		// Функция формирует текст запроса по остаткам незавершенного производства.
		//
		// Возвращаемое значение:
		//	Строка - Текст запроса
		//

		public object СформироватьТекстЗапросаПоОстаткамНЗП(/**/)
		{
			/*ТекстЗапроса = "
	|	ВЫБРАТЬ
	|		//ДляУпрУчета 3 КАК ИндексУчета,
	|		//ДляБухУчета 2 КАК ИндексУчета,
	|		//ДляНалУчета 1 КАК ИндексУчета,
	|		НезавершенноеПроизводство.Затрата,
	|		НезавершенноеПроизводство.ХарактеристикаЗатраты,
	|		НезавершенноеПроизводство.СерияЗатраты,
	|		НезавершенноеПроизводство.СтатьяЗатрат,
	|		НезавершенноеПроизводство.НоменклатурнаяГруппа,
	|		НезавершенноеПроизводство.Заказ,
	|		
	|		НезавершенноеПроизводство.Затрата.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	|		НезавершенноеПроизводство.Затрата.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
	|		
	|		ЕСТЬNULL(РегламентныеДокументы.ЕстьРасчетСебестоимостиВыпуска, Ложь) КАК ЕстьРасчетСебестоимостиВыпуска,
	|		
	|		//ДляУпрУчета Неопределено КАК СчетЗатрат,
	|		//ДляУпрУчета Неопределено КАК СчетЗатратНУ,
	|		
	|		//ДляБухУчета НезавершенноеПроизводство.СчетУчета КАК СчетЗатрат,
	|		//ДляБухУчета Неопределено КАК СчетЗатратНУ,
	|		
	|		//ДляНалУчета ЕСТЬNULL(НезавершенноеПроизводствоБух.СчетУчета, НезавершенноеПроизводство.СчетУчета) КАК СчетЗатрат,
	|		//ДляНалУчета НезавершенноеПроизводство.СчетУчета КАК СчетЗатратНУ,
	|		
	|		//ДляУпрУчета (НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляУпрУчета ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляУпрУчета ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) КАК Количество,
	|		//ДляУпрУчета 0 КАК КоличествоБух,
	|		//ДляУпрУчета 0 КАК КоличествоНал,
	|
	|		//ДляБухУчета 0 КАК Количество,
	|		//ДляБухУчета (НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляБухУчета ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляБухУчета ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) КАК КоличествоБух,
	|		//ДляБухУчета 0 КАК КоличествоНал,
	|
	|		//ДляНалУчета 0 КАК Количество,
	|		//ДляНалУчета 0 КАК КоличествоБух,
	|		//ДляНалУчета (НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляНалУчета ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляНалУчета ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) КАК КоличествоНал,
	|		
	|		//ДляУпрУчета ВЫБОР КОГДА НезавершенноеПроизводство.КоличествоОстаток = 0 ТОГДА
	|		//ДляУпрУчета 		НезавершенноеПроизводство.СтоимостьОстаток -
	|		//ДляУпрУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Сумма, 0) -
	|		//ДляУпрУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Сумма, 0)
	|		//ДляУпрУчета ИНАЧЕ
	|		//ДляУпрУчета 		(НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляУпрУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляУпрУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) *
	|		//ДляУпрУчета 		НезавершенноеПроизводство.СтоимостьОстаток / НезавершенноеПроизводство.КоличествоОстаток
	|		//ДляУпрУчета КОНЕЦ КАК Сумма,
	|		//ДляУпрУчета 0 КАК СуммаБух,
	|		//ДляУпрУчета 0 КАК СуммаНал
	|		
	|		//ДляБухУчета 0 КАК Сумма,
	|		//ДляБухУчета ВЫБОР КОГДА НезавершенноеПроизводство.КоличествоОстаток = 0 ТОГДА
	|		//ДляБухУчета 		НезавершенноеПроизводство.СтоимостьОстаток -
	|		//ДляБухУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Сумма, 0) -
	|		//ДляБухУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Сумма, 0)
	|		//ДляБухУчета ИНАЧЕ
	|		//ДляБухУчета 		(НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляБухУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляБухУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) *
	|		//ДляБухУчета 		НезавершенноеПроизводство.СтоимостьОстаток / НезавершенноеПроизводство.КоличествоОстаток
	|		//ДляБухУчета КОНЕЦ КАК СуммаБух,
	|		//ДляБухУчета 0 КАК СуммаНал
	|		
	|		//ДляНалУчета 0 КАК Сумма,
	|		//ДляНалУчета 0 КАК СуммаБух,
	|		//ДляНалУчета ВЫБОР КОГДА НезавершенноеПроизводство.КоличествоОстаток = 0 ТОГДА
	|		//ДляНалУчета 		НезавершенноеПроизводство.СтоимостьОстаток +
	|		//ДляНалУчета 		НезавершенноеПроизводство.ПостояннаяРазницаОстаток -
	|		//ДляНалУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Сумма, 0) -
	|		//ДляНалУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Сумма, 0)
	|		//ДляНалУчета ИНАЧЕ
	|		//ДляНалУчета 		(НезавершенноеПроизводство.КоличествоОстаток -
	|		//ДляНалУчета 		ЕСТЬNULL(ЗатратыНаВыпуск.Количество, 0) -
	|		//ДляНалУчета 		ЕСТЬNULL(ЗатратыНаВыпускНаработка.Количество, 0)) *
	|		//ДляНалУчета 		НезавершенноеПроизводство.СтоимостьОстаток / НезавершенноеПроизводство.КоличествоОстаток
	|		//ДляНалУчета КОНЕЦ КАК СуммаНал
	|		
	|	ИЗ
	|		РегистрНакопления.НезавершенноеПроизводство%СуффиксУчета%.Остатки(&КонГраница, 
	|			//ДляУпрУчета Подразделение = &Подразделение
	|			//ДляРеглУчета Организация = &Организация
	|			//ДляРеглУчета И Подразделение = &ПодразделениеОрганизации
	|			//Материальные И СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|			//Материальные И Затрата.ВидНоменклатуры.ТипНоменклатуры <> &Услуга
	|			//Материальные И Не СтатьяЗатрат.СтатусМатериальныхЗатрат В (&СтатусыМатериальныхЗатрат)
	|			//Нематериальные И СтатьяЗатрат.ВидЗатрат <> ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|			//ЕстьСтатьяЗатрат И СтатьяЗатрат = &СтатьяЗатрат
	|			//ЕстьЗаказ И Заказ = &Заказ
	|			И Не Затрата ССЫЛКА Перечисление.ХарактерЗатрат
	|		) КАК НезавершенноеПроизводство
	|																					   
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			ЗатратыНаВыпуск.Затрата,
	|			ЗатратыНаВыпуск.СерияЗатраты,
	|			ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|			ЗатратыНаВыпуск.СтатьяЗатрат,
	|			ЗатратыНаВыпуск.НоменклатурнаяГруппаНЗП,
	|			ЗатратыНаВыпуск.ЗаказНЗП,
	|			//ДляРеглУчета ЗатратыНаВыпуск.СчетУчета,
	|			СУММА(ЗатратыНаВыпуск.Количество) КАК Количество,
	|			СУММА(ЗатратыНаВыпуск.Сумма) КАК Сумма
	|		ИЗ
	|			РегистрНакопления.ЗатратыНаВыпускПродукции%СуффиксУчета% КАК ЗатратыНаВыпуск
	|		ГДЕ
	|			ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|			//ДляУпрУчета И (ЗатратыНаВыпуск.Подразделение = &Подразделение
	|			//ДляУпрУчета 	ИЛИ ЗатратыНаВыпуск.ПодразделениеНЗП = &Подразделение)
	|			//ДляРеглУчета И Организация = &Организация
	|			//ДляРеглУчета И (ЗатратыНаВыпуск.Подразделение = &ПодразделениеОрганизации
	|			//ДляРеглУчета 	ИЛИ ЗатратыНаВыпуск.ПодразделениеНЗП = &ПодразделениеОрганизации)
	|			//Материальные И ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|			//Материальные И Не ЗатратыНаВыпуск.СтатьяЗатрат.СтатусМатериальныхЗатрат В (&СтатусыМатериальныхЗатрат)
	|			//Нематериальные И ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат <> ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|			И ЗатратыНаВыпуск.Регистратор  <> &ТекДок
	|			И ЗатратыНаВыпуск.КодОперации В(&КодыОпераций)
	|			//ЕстьСтатьяЗатрат И ЗатратыНаВыпуск.СтатьяЗатрат = &СтатьяЗатрат
	|			//ЕстьЗаказ И ЗатратыНаВыпуск.ЗаказНЗП = &Заказ
	|		
	|		СГРУППИРОВАТЬ ПО
	|			//ДляРеглУчета ЗатратыНаВыпуск.СчетУчета,
	|			ЗатратыНаВыпуск.Затрата,
	|			ЗатратыНаВыпуск.СерияЗатраты,
	|			ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|			ЗатратыНаВыпуск.СтатьяЗатрат,
	|			ЗатратыНаВыпуск.НоменклатурнаяГруппаНЗП,
	|			ЗатратыНаВыпуск.ЗаказНЗП
	|		) КАК ЗатратыНаВыпуск
	|
	|	ПО 
	|		НезавершенноеПроизводство.Затрата = ЗатратыНаВыпуск.Затрата
	|		И НезавершенноеПроизводство.ХарактеристикаЗатраты = ЗатратыНаВыпуск.ХарактеристикаЗатраты
	|		И НезавершенноеПроизводство.СерияЗатраты = ЗатратыНаВыпуск.СерияЗатраты
	|		И НезавершенноеПроизводство.СтатьяЗатрат = ЗатратыНаВыпуск.СтатьяЗатрат
	|		И НезавершенноеПроизводство.НоменклатурнаяГруппа = ЗатратыНаВыпуск.НоменклатурнаяГруппаНЗП
	|		И НезавершенноеПроизводство.Заказ = ЗатратыНаВыпуск.ЗаказНЗП
	|		//ДляБухУчета И НезавершенноеПроизводство.СчетУчета = ЗатратыНаВыпуск.СчетУчета
	|		
	|		//ДляНалУчета И (НезавершенноеПроизводство.СчетУчета = ЗатратыНаВыпуск.СчетУчета 
	|		//ДляНалУчета 		И НезавершенноеПроизводство.СчетУчета В (&СчетаПрямыхРасходов)
	|		//ДляНалУчета 	ИЛИ НезавершенноеПроизводство.СчетУчета.Родитель = ЗатратыНаВыпуск.СчетУчета.Родитель 
	|		//ДляНалУчета		И Не НезавершенноеПроизводство.СчетУчета В (&СчетаПрямыхРасходов))
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			ВЫБОР КОГДА ЗатратыНаВыпускНаработка.Затрата = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) ТОГДА
	|				Неопределено
	|			ИНАЧЕ
	|				ЗатратыНаВыпускНаработка.Затрата
	|			КОНЕЦ КАК Затрата,
	|			ЗатратыНаВыпускНаработка.СерияЗатраты,
	|			ЗатратыНаВыпускНаработка.ХарактеристикаЗатраты,
	|			ЗатратыНаВыпускНаработка.СтатьяЗатрат,
	|			ЗатратыНаВыпускНаработка.НоменклатурнаяГруппаНЗП,
	|			ЗатратыНаВыпускНаработка.ЗаказНЗП,
	|			//ДляРеглУчета ЗатратыНаВыпускНаработка.СчетУчета,
	|			ЗатратыНаВыпускНаработка.КоличествоОстаток КАК Количество,
	|			ЗатратыНаВыпускНаработка.СуммаОстаток КАК Сумма
	|		ИЗ
	|			РегистрНакопления.ЗатратыНаВыпускПродукцииНаработка%СуффиксУчета%.Остатки(&КонГраница, 
	|				//ДляУпрУчета (Подразделение = &Подразделение
	|				//ДляУпрУчета 	ИЛИ ПодразделениеНЗП = &Подразделение)
	|				//ДляРеглУчета Организация = &Организация
	|				//ДляРеглУчета И (Подразделение = &ПодразделениеОрганизации
	|				//ДляРеглУчета 	ИЛИ ПодразделениеНЗП = &ПодразделениеОрганизации)
	|				//Материальные И СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|				//Материальные И Затрата.ВидНоменклатуры.ТипНоменклатуры <> &Услуга
	|				//Материальные И Не СтатьяЗатрат.СтатусМатериальныхЗатрат В (&СтатусыМатериальныхЗатрат)
	|				//Нематериальные И СтатьяЗатрат.ВидЗатрат <> ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|				//ЕстьСтатьяЗатрат И СтатьяЗатрат = &СтатьяЗатрат
	|				//ЕстьЗаказ И Заказ = &Заказ
	|			) КАК ЗатратыНаВыпускНаработка
	|		
	|		) КАК ЗатратыНаВыпускНаработка
	|
	|	ПО 
	|		НезавершенноеПроизводство.Затрата = ЗатратыНаВыпускНаработка.Затрата
	|		И НезавершенноеПроизводство.ХарактеристикаЗатраты = ЗатратыНаВыпускНаработка.ХарактеристикаЗатраты
	|		И НезавершенноеПроизводство.СерияЗатраты = ЗатратыНаВыпускНаработка.СерияЗатраты
	|		И НезавершенноеПроизводство.СтатьяЗатрат = ЗатратыНаВыпускНаработка.СтатьяЗатрат
	|		И НезавершенноеПроизводство.НоменклатурнаяГруппа = ЗатратыНаВыпускНаработка.НоменклатурнаяГруппаНЗП
	|		И НезавершенноеПроизводство.Заказ = ЗатратыНаВыпускНаработка.ЗаказНЗП
	|		//ДляБухУчета И НезавершенноеПроизводство.СчетУчета = ЗатратыНаВыпускНаработка.СчетУчета
	|		
	|		//ДляНалУчета И (НезавершенноеПроизводство.СчетУчета = ЗатратыНаВыпускНаработка.СчетУчета 
	|		//ДляНалУчета 		И НезавершенноеПроизводство.СчетУчета В (&СчетаПрямыхРасходов)
	|		//ДляНалУчета 	ИЛИ НезавершенноеПроизводство.СчетУчета.Родитель = ЗатратыНаВыпускНаработка.СчетУчета.Родитель 
	|		//ДляНалУчета		И Не НезавершенноеПроизводство.СчетУчета В (&СчетаПрямыхРасходов))
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ	ПЕРВЫЕ 1
	|			НезавершенноеПроизводство.Регистратор,
	|			Истина КАК ЕстьРасчетСебестоимостиВыпуска
	|		ИЗ
	|			РегистрНакопления.НезавершенноеПроизводство%СуффиксУчета% КАК НезавершенноеПроизводство
	|		ГДЕ
	|			НезавершенноеПроизводство.Период МЕЖДУ &НачДата И &КонДата
	|			И НезавершенноеПроизводство.Регистратор ССЫЛКА Документ.РасчетСебестоимостиВыпуска
	|			//ДляРеглУчета И НезавершенноеПроизводство.Организация = &Организация
	|		) КАК РегламентныеДокументы
	|	ПО
	|		Истина
	|
	|	//ДляНалУчета	ЛЕВОЕ СОЕДИНЕНИЕ 
	|	//ДляНалУчета 		РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.Остатки(&КонГраница, 
	|	//ДляНалУчета           Организация = &Организация
	|	//ДляНалУчета 			И Подразделение = &ПодразделениеОрганизации
	|	//ДляНалУчета 			//Материальные И СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|	//ДляНалУчета 			//Материальные И Затрата.ВидНоменклатуры.ТипНоменклатуры <> &Услуга
	|	//ДляНалУчета 			//Материальные И Не СтатьяЗатрат.СтатусМатериальныхЗатрат В (&СтатусыМатериальныхЗатрат)
	|	//ДляНалУчета 			//Нематериальные И СтатьяЗатрат.ВидЗатрат <> ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.Материальные)
	|	//ДляНалУчета 			//ЕстьСтатьяЗатрат И СтатьяЗатрат = &СтатьяЗатрат
	|	//ДляНалУчета 			//ЕстьЗаказ И Заказ = &Заказ
	|	//ДляНалУчета 		) КАК НезавершенноеПроизводствоБух
	| 	//ДляНалУчета 	ПО
	|	//ДляНалУчета 		НезавершенноеПроизводство.Затрата = НезавершенноеПроизводствоБух.Затрата
	|	//ДляНалУчета 		И НезавершенноеПроизводство.ХарактеристикаЗатраты = НезавершенноеПроизводствоБух.ХарактеристикаЗатраты
	|	//ДляНалУчета 		И НезавершенноеПроизводство.СерияЗатраты = НезавершенноеПроизводствоБух.СерияЗатраты
	|	//ДляНалУчета 		И НезавершенноеПроизводство.СтатьяЗатрат = НезавершенноеПроизводствоБух.СтатьяЗатрат
	|	//ДляНалУчета 		И НезавершенноеПроизводство.НоменклатурнаяГруппа = НезавершенноеПроизводствоБух.НоменклатурнаяГруппа
	|	//ДляНалУчета 		И НезавершенноеПроизводство.Заказ = НезавершенноеПроизводствоБух.Заказ
	|	//ДляНалУчета
	|	//ДляНалУчета	ЛЕВОЕ СОЕДИНЕНИЕ (
	|	//ДляНалУчета		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	//ДляНалУчета			СоответствиеСчетовБУиНУ.СчетБУ КАК СчетБУ,
	|	//ДляНалУчета			СоответствиеСчетовБУиНУ.СчетНУ КАК СчетНУ
	|	//ДляНалУчета		ИЗ
	|	//ДляНалУчета			РегистрСведений.СоответствиеСчетовБУиНУ КАК СоответствиеСчетовБУиНУ
	|	//ДляНалУчета		) КАК Соответствие
	|	//ДляНалУчета	ПО
	|	//ДляНалУчета		НезавершенноеПроизводствоБух.СчетУчета = Соответствие.СчетБУ
	|	//ДляНалУчета		И НезавершенноеПроизводство.СчетУчета = Соответствие.СчетНУ
	|	//ДляНалУчета	
	|	//ДляНалУчета	ГДЕ
	|	//ДляНалУчета		НЕ Соответствие.СчетБУ ЕСТЬ NULL
	|	//ДляНалУчета		ИЛИ НезавершенноеПроизводствоБух.СчетУчета ЕСТЬ NULL
    |";*/
			return null;
		}
		// СформироватьТекстЗапросаПоОстаткамНЗП()
		// Процедура устанавливает параметры запроса по остаткам незавершенного производства.
		//
		// Параметры:
		//

		public void УстановитьПараметрыЗапросаПоОстаткамНезавершенногоПроизводства(/*
	ДокументОбъект,
	МетаданныеДокумента,
	ХарактерЗатрат,
	ИсключатьУслуги,
	ИсключатьДавальческоеСырье,
	ТолькоОтрицательныеОстатки,
	ТолькоВозвратныеОтходы,
	ЕстьЗаказ,
	ЕстьСтатьяЗатрат,
	Запрос
	*/)
		{
			//ЕстьДатаНачалаПериода = (МетаданныеДокумента.Реквизиты.Найти("ДатаНачалаПериода") <> Неопределено);
			/*НачДата = ?(ЕстьДатаНачалаПериода И ЗначениеЗаполнено(ДокументОбъект.ДатаНачалаПериода), 
		ДокументОбъект.ДатаНачалаПериода, 
		НачалоМесяца(ДокументОбъект.Дата));*/
			//КонДата = УправлениеЗатратами.ПолучитьДатуДляЗапроса(ДокументОбъект, МетаданныеДокумента);
			//Запрос.УстановитьПараметр("НачДата", НачДата);
			//Запрос.УстановитьПараметр("КонДата", КонДата);
			//Запрос.УстановитьПараметр("КонГраница", Новый Граница(КонДата, ВидГраницы.Включая));
			//Запрос.УстановитьПараметр("Организация", ДокументОбъект.Организация);
			//Запрос.УстановитьПараметр("Подразделение", ДокументОбъект.Подразделение);
			//Запрос.УстановитьПараметр("ПодразделениеОрганизации", ДокументОбъект.ПодразделениеОрганизации);
			//Запрос.УстановитьПараметр("ТекДок", ДокументОбъект.Ссылка);
			//Запрос.УстановитьПараметр("Услуга", ?(ИсключатьУслуги, Перечисления.ТипыНоменклатуры.Услуга, Неопределено));
			//Запрос.УстановитьПараметр("ХарактерЗатрат", ХарактерЗатрат);
			//Знак = ?(ТолькоОтрицательныеОстатки ИЛИ ТолькоВозвратныеОтходы, -1, 1);
			//Запрос.УстановитьПараметр("Знак", Знак);
			if(true/*ЕстьЗаказ*/)
			{
				//Запрос.УстановитьПараметр("Заказ", ДокументОбъект.Заказ);
			}
			if(true/*ЕстьСтатьяЗатрат*/)
			{
				//Запрос.УстановитьПараметр("СтатьяЗатрат", ДокументОбъект.СтатьяЗатрат);
			}
			//МассивСтатусовМатериальныхЗатрат = Новый Массив;
			if(true/*Не ТолькоВозвратныеОтходы*/)
			{
				//МассивСтатусовМатериальныхЗатрат.Добавить(Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ВозвратныеОтходы);
			}
			if(true/*ИсключатьДавальческоеСырье*/)
			{
				//МассивСтатусовМатериальныхЗатрат.Добавить(Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ПринятыеВПереработку);
			}
			//Запрос.УстановитьПараметр("СтатусыМатериальныхЗатрат", МассивСтатусовМатериальныхЗатрат);
			//Запрос.УстановитьПараметр("СтатусМатериальныхЗатратПринятые", Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ПринятыеВПереработку);
			//МассивСчетовПрямыхРасходов = Новый Массив;
			//МассивСчетовПрямыхРасходов.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства);
			//МассивСчетовПрямыхРасходов.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыОбслуживающихПроизводств);
			//МассивСчетовПрямыхРасходов.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыВспомогательныхПроизводств);
			//Запрос.УстановитьПараметр("СчетаПрямыхРасходов", МассивСчетовПрямыхРасходов);
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ВозвратМатериаловИзПроизводстваРасч);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ПрямыеЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.СписаниеНЗП);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.КорректировкаНЗПРасч);
			if(true/*ТолькоВозвратныеОтходы*/)
			{
				//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОтрицательныеЗатраты);
			}
			//Запрос.УстановитьПараметр("КодыОпераций", МассивКодовОпераций);
		}
		// УстановитьПараметрыЗапросаПоОстаткамНезавершенногоПроизводства()
		// Функция формирует запрос по остаткам незавершенного производства.
		// При использовании режима РА формирует запрос по остаткам согласно отбору по характеру затрат
		//
		// Параметры:
		//	ДокументОбъект - документ для заполнения,
		//	МетаданныеДокумента - метаданные заполняемого документа,
		//	ХарактерЗатрат - Неопределено, Массив, ПеречислениеСсылка.ХарактерЗатрат - отбор по характеру затрат,
		//	МатериальныеЗатраты - Булево - Истина - заполняем материальными затратами, Ложь - нематериальными,
		//	ИсключатьУслуги - Булево - Истина - исключаем остатки затрат по услугам,
		//	ИсключатьДавальческоеСырье - Булево - исключаем остатки по давальческому сырью,
		//	ТолькоОтрицательныеОстатки - Булево - признак, что необходимо заполнять только отрицательными остатками,
		//	ТолькоВозвратныеОтходы - Булево - признак, что необходимо заполнять только возвратными отходами
		//	ЕстьЗаказ - Булево - признак того, что нужно использовать отбор по заказу
		//	ЕстьСтатьяЗатрат - Булево - признак, что нужно отобрать по статье затрат
		//
		//
		// Возвращаемое значение:
		//	Запрос - запрос для получения остатков
		//

		public object СформироватьЗапросПоОстаткамНезавершенногоПроизводства(/*
	ДокументОбъект,
	МетаданныеДокумента,
	ХарактерЗатрат = Неопределено,
	МатериальныеЗатраты,
	ИсключатьУслуги,
	ИсключатьДавальческоеСырье,
	ТолькоОтрицательныеОстатки,
	ТолькоВозвратныеОтходы,
	ЕстьЗаказ,
	ЕстьСтатьяЗатрат,
	ЕстьСчетЗатратНУ = Истина
	*/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	НезавершенноеПроизводство.ЕстьРасчетСебестоимостиВыпуска,
	|	НезавершенноеПроизводство.Затрата КАК Номенклатура,
	|	НезавершенноеПроизводство.ХарактеристикаЗатраты КАК ХарактеристикаНоменклатуры,
	|	НезавершенноеПроизводство.СерияЗатраты КАК СерияНоменклатуры,
	|	НезавершенноеПроизводство.СтатьяЗатрат,
	|	НезавершенноеПроизводство.НоменклатурнаяГруппа,
	|	НезавершенноеПроизводство.Заказ КАК Заказ,
	|	
	|	НезавершенноеПроизводство.ЕдиницаИзмерения,
	|	НезавершенноеПроизводство.Коэффициент,
	|	
	|	НезавершенноеПроизводство.СчетЗатрат,
	|	НезавершенноеПроизводство.СчетЗатратНУ,
	|	
	|	&Знак * НезавершенноеПроизводство.Количество КАК Количество,
	|	&Знак * НезавершенноеПроизводство.КоличествоБух КАК КоличествоБух,
	|	&Знак * НезавершенноеПроизводство.КоличествоНал КАК КоличествоНал,
	|	
	|	&Знак * НезавершенноеПроизводство.Сумма КАК Сумма,
	|	&Знак * НезавершенноеПроизводство.СуммаБух КАК СуммаБух,
	|	&Знак * НезавершенноеПроизводство.СуммаНал КАК СуммаНал
	|	
	|ИЗ (
	|
	|	//ДляУпрУчета //ТекстЗапросаПоОстаткамНезавершенногоПроизводстваУУ
	|	//ДляУпрУчета //ДляБухУчета ОБЪЕДИНИТЬ ВСЕ
	|	//ДляБухУчета //ТекстЗапросаПоОстаткамНезавершенногоПроизводстваБУ
	|	//ДляБухУчета //ДляНалУчета ОБЪЕДИНИТЬ ВСЕ
	|	//ДляНалУчета //ТекстЗапросаПоОстаткамНезавершенногоПроизводстваНУ
	|	) КАК НезавершенноеПроизводство
	|
	|СГРУППИРОВАТЬ ПО
	|	НезавершенноеПроизводство.ЕстьРасчетСебестоимостиВыпуска,
	|	НезавершенноеПроизводство.Затрата,
	|	НезавершенноеПроизводство.ХарактеристикаЗатраты,
	|	НезавершенноеПроизводство.СерияЗатраты,
	|	НезавершенноеПроизводство.СтатьяЗатрат,
	|	НезавершенноеПроизводство.НоменклатурнаяГруппа,
	|	НезавершенноеПроизводство.Заказ,
	|	
	|	НезавершенноеПроизводство.ЕдиницаИзмерения,
	|	НезавершенноеПроизводство.Коэффициент,
	|	
	|	НезавершенноеПроизводство.СчетЗатрат,
	|	НезавершенноеПроизводство.СчетЗатратНУ,
	|	НезавершенноеПроизводство.ИндексУчета,
	|	
	|	НезавершенноеПроизводство.Количество,
	|	НезавершенноеПроизводство.КоличествоБух,
	|	НезавершенноеПроизводство.КоличествоНал,
	|	
	|	НезавершенноеПроизводство.Сумма,
	|	НезавершенноеПроизводство.СуммаБух,
	|	НезавершенноеПроизводство.СуммаНал
	|		
	|//ТолькоОтрицательныеОстатки ИМЕЮЩИЕ (НезавершенноеПроизводство.Количество < 0
	|//ТолькоОтрицательныеОстатки 	ИЛИ НезавершенноеПроизводство.КоличествоБух < 0
	|//ТолькоОтрицательныеОстатки 	ИЛИ НезавершенноеПроизводство.КоличествоНал < 0)
	|
	|УПОРЯДОЧИТЬ ПО
	|	НезавершенноеПроизводство.ИндексУчета
	|
	|ИТОГИ 
	|	МАКСИМУМ(ЕстьРасчетСебестоимостиВыпуска),
	|	СУММА(Количество),
	|	СУММА(КоличествоБух),
	|	СУММА(КоличествоНал),
	|	СУММА(Сумма),
	|	СУММА(СуммаБух),
	|	СУММА(СуммаНал)
	|ПО
	|	НезавершенноеПроизводство.Затрата,
	|	//Материальные НезавершенноеПроизводство.ХарактеристикаЗатраты,
	|	//Материальные НезавершенноеПроизводство.СерияЗатраты,
	|	НезавершенноеПроизводство.СтатьяЗатрат,
	|	НезавершенноеПроизводство.НоменклатурнаяГруппа,
	|	НезавершенноеПроизводство.Заказ,
	|	//Материальные НезавершенноеПроизводство.ЕдиницаИзмерения,
	|	//Материальные НезавершенноеПроизводство.Коэффициент,
	|	НезавершенноеПроизводство.СчетЗатрат
	|";*/
			//ИспользоватьРасширеннуюАналитику = УправлениеЗапасами.ИспользуетсяРасширеннаяАналитикаУчета(ДокументОбъект.Дата);
			if(true/*ИспользоватьРасширеннуюАналитику*/)
			{
				//РежимИспользованияРасширеннойАналитики = глЗначениеПеременной("РежимИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат");
				if(true/*Не МатериальныеЗатраты*/)
				{
					//ИспользоватьДанныеУправленческогоУчета = Истина;
					//ИспользоватьДанныеБухгалтерскогоУчета  = Истина;
				}
				//ИспользоватьДанныеНалоговогоУчета = Ложь;
			}
			if(true/*ИспользоватьДанныеУправленческогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляУпрУчета", "");
			}
			if(true/*ИспользоватьДанныеБухгалтерскогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляБухУчета", "");
			}
			if(true/*ИспользоватьДанныеНалоговогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляНалУчета", "");
			}
			if(true/*ИспользоватьРасширеннуюАналитику*/)
			{
				//ТекстЗапросаПоОстаткамНЗП = СформироватьТекстЗапросаПоОстаткамЗатратРасширеннаяАналитика(ЕстьСчетЗатратНУ);
			}
			if(true/*ИспользоватьДанныеУправленческогоУчета*/)
			{
				/*ТекстЗапросаПоОстаткам = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоОстаткамНЗП,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоОстаткамНезавершенногоПроизводстваУУ",
			ТекстЗапросаПоОстаткам
		);*/
			}
			if(true/*ИспользоватьДанныеБухгалтерскогоУчета*/)
			{
				/*ТекстЗапросаПоОстаткам = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоОстаткамНЗП,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоОстаткамНезавершенногоПроизводстваБУ",
			ТекстЗапросаПоОстаткам
		);*/
			}
			if(true/*ИспользоватьДанныеНалоговогоУчета*/)
			{
				/*ТекстЗапросаПоОстаткам = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоОстаткамНЗП,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоОстаткамНезавершенногоПроизводстваНУ",
			ТекстЗапросаПоОстаткам
		);*/
			}
			if(true/*ТолькоОтрицательныеОстатки*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ТолькоОтрицательныеОстатки", "");
			}
			if(true/*ЕстьЗаказ*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ЕстьЗаказ", "");
			}
			if(true/*ЕстьСтатьяЗатрат*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ЕстьСтатьяЗатрат", "");
			}
			if(true/*МатериальныеЗатраты*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//Материальные", "");
			}
			if(true/*ЗначениеЗаполнено(ХарактерЗатрат)*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ХарактерЗатрат", "");
			}
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.Параметры.Вставить("ЕстьСчетЗатратНУ", ЕстьСчетЗатратНУ);
			/*УстановитьПараметрыЗапросаПоОстаткамНезавершенногоПроизводства(
		ДокументОбъект,
		МетаданныеДокумента,
		ХарактерЗатрат,
		ИсключатьУслуги,
		ИсключатьДавальческоеСырье,
		ТолькоОтрицательныеОстатки,
		ТолькоВозвратныеОтходы,
		ЕстьЗаказ,
		ЕстьСтатьяЗатрат,
		Запрос
	);*/
			return null;
		}
		// СформироватьТекстЗапросаПоОстаткамНезавершенногоПроизводства()
		// Процедура формирует таблицу остатков материалов в незавершенном производстве.
		//

		public void ЗаполнитьМатериалыПоОстаткамНЗП(/*
	ДокОбъект, 
	ТаблицаМатериалы,
	ЕстьСумма = Ложь,
	ЕстьЕдиницаИзмерения = Ложь,
	ЕстьЕдиницаИзмеренияМест = Ложь,
	ИсключатьДавальческоеСырье = Ложь,
	ТолькоОтрицательныеОстатки = Ложь,
	ИсключатьУслуги = Ложь,
	ТолькоВозвратныеОтходы = Ложь,
	СчетНУПрямыхРасходов = Ложь
	*/)
		{
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			if(true/*НЕ ОтражатьВУправленческомУчете 
	   И НЕ ОтражатьВБухгалтерскомУчете 
	   И НЕ ОтражатьВНалоговомУчете*/)
			{
				/*ОбщегоНазначения.Сообщение("Документ не отражается ни в одном виде учета!
			|Заполнение не может быть выполнено!", СтатусСообщения.Внимание);*/
			}
			//МетаданныеДокумента = ДокОбъект.Метаданные();
			//ЕстьЗаказ = (МетаданныеДокумента.Реквизиты.Найти("Заказ") <> Неопределено);
			if(true/*ЕстьЗаказ И НЕ ЗначениеЗаполнено(ДокОбъект.Заказ)*/)
			{
				//ЕстьЗаказ = Ложь;
			}
			//ЕстьНомГруппа = Истина;
			/*// Если это таб.часть документа то поищем в метаданных.
*/
			if(true/*НЕ ТипЗнч(ТаблицаМатериалы) = Тип("ТаблицаЗначений")*/)
			{
				if(true/*НЕ Метаданные.НайтиПоТипу(ТипЗнч(ТаблицаМатериалы)) = Неопределено*/)
				{
					//ЕстьНомГруппа = НЕ Метаданные.НайтиПоТипу(ТипЗнч(ТаблицаМатериалы)).Реквизиты.Найти("НоменклатурнаяГруппа") = Неопределено;
				}
			}
			//ЕстьВводитьСтатьиЗатратПоСтрокам = (МетаданныеДокумента.Реквизиты.Найти("ВводитьСтатьиЗатратПоСтрокам") <> Неопределено);
			if(true/*ЕстьВводитьСтатьиЗатратПоСтрокам 
	   И Не ДокОбъект.ВводитьСтатьиЗатратПоСтрокам*/)
			{
				//ЕстьСтатьяЗатрат = Истина;
			}
			//ТабЧастьДокумента = ТаблицаМатериалы;
			if(true/*НЕ ТипЗнч(ТаблицаМатериалы) = Тип("ТаблицаЗначений")*/)
			{
				//ТабЧастьДокумента = ТаблицаМатериалы.Выгрузить();
			}
			//ЕстьСчетЗатрат = НЕ ТабЧастьДокумента.Колонки.Найти("СчетЗатрат") = Неопределено;
			//ЕстьЗаказНаПроизводство = Не ТабЧастьДокумента.Колонки.Найти("ЗаказНаПроизводство") = Неопределено;
			//ЕстьСуммаНал = Не ТабЧастьДокумента.Колонки.Найти("СуммаНал") = Неопределено;
			/*// Получаем остатки производсвенных затрат
*/
			/*// МатериальныеЗатраты
*/
			/*ИсключатьУслуги,
		ИсключатьДавальческоеСырье,
		ТолькоОтрицательныеОстатки,
		ТолькоВозвратныеОтходы,
		ЕстьЗаказ,
		ЕстьСтатьяЗатрат,
		НЕ СчетНУПрямыхРасходов
	);*/
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			//ВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета");
			//ВалютаУправленческогоУчета = глЗначениеПеременной("ВалютаУправленческогоУчета");
			//ЕстьРасчетСебестоимостиВыпуска = Ложь;
			//ОбходПоЗатратам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбходПоЗатратам.Следующий()*/)
			{
				if(true/*Не ЕстьРасчетСебестоимостиВыпуска*/)
				{
					//ЕстьРасчетСебестоимостиВыпуска = ОбходПоЗатратам.ЕстьРасчетСебестоимостиВыпуска;
				}
				//ОбходПоХарактеристикам = ОбходПоЗатратам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ОбходПоХарактеристикам.Следующий()*/)
				{
					//ОбходПоСериям = ОбходПоХарактеристикам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
					while(true/*ОбходПоСериям.Следующий()*/)
					{
						//ОбходПоСтатьямЗатрат = ОбходПоСериям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
						while(true/*ОбходПоСтатьямЗатрат.Следующий()*/)
						{
							//ОбходПоНомГруппам = ОбходПоСтатьямЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							while(true/*ОбходПоНомГруппам.Следующий()*/)
							{
								//ОбходПоЗаказам = ОбходПоНомГруппам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								while(true/*ОбходПоЗаказам.Следующий()*/)
								{
									//ОбходПоЕдИзм = ОбходПоЗаказам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
									while(true/*ОбходПоЕдИзм.Следующий()*/)
									{
										//ОбходПоКоэф = ОбходПоЕдИзм.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
										while(true/*ОбходПоКоэф.Следующий()*/)
										{
											//ВсегоКоличество = ОбходПоКоэф.Количество;
											//ВсегоСумма = ОбходПоКоэф.Сумма;
											//ОбходПоСчету = ОбходПоКоэф.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
											while(true/*ОбходПоСчету.Следующий()*/)
											{
												//ВсегоКоличествоБух = ОбходПоСчету.КоличествоБух;
												//ВсегоСуммаБух = ОбходПоСчету.СуммаБух;
												//Курс = ?(ВсегоСумма <> 0, ВсегоСуммаБух / ВсегоСумма, 0);
												//Обход = ОбходПоСчету.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
												while(true/*Обход.Следующий()*/)
												{
													//СчетЗатратНУ = Неопределено;
													if(true/*ОтражатьВНалоговомУчете*/)
													{
														if(true/*СчетНУПрямыхРасходов*/)
														{
															//СчетЗатратНУ = УправлениеЗатратами.ПолучитьСчетПрямыхРасходовНУ(Обход.СчетЗатрат);
														}
														if(true/*НЕ ЗначениеЗаполнено(СчетЗатратНУ)*/)
														{
														}
														//ТекКоличество = Обход.КоличествоНал;
													}
													if(true/*ТекКоличество <= 0*/)
													{
													}
													//ТекСумма = Окр(?(ВсегоКоличество <> 0, ТекКоличество * ВсегоСумма / ВсегоКоличество, 0), 2, 1);
													//ТекСуммаБух = Окр(?(ВсегоКоличествоБух <> 0, ТекКоличество * ВсегоСуммаБух / ВсегоКоличествоБух, 0), 2, 1);
													//ТекСуммаНал = Обход.СуммаНал;
													if(true/*ВсегоСуммаБух >= ТекСуммаНал И ТекСуммаНал <> 0*/)
													{
														//ТекСуммаБух = ТекСуммаНал;
													}
													//ВсегоСуммаБух = ВсегоСуммаБух - ТекСуммаБух;
													//ТекСумма      = ?(Курс <> 0, Окр(ТекСуммаБух / Курс, 2, 1), ВсегоСумма);
													if(true/*ТекСумма > ВсегоСумма*/)
													{
														//ТекСумма = ВсегоСумма;
													}
													//ВсегоСумма    = ВсегоСумма - ТекСумма;
													//ВсегоКоличество = ВсегоКоличество - ТекКоличество;
													//ВсегоКоличествоБух = ВсегоКоличествоБух - ТекКоличество;
													if(true/*ТекКоличество = 0*/)
													{
													}
													//НоваяСтрока = ТаблицаМатериалы.Добавить();
													//ЗаполнитьЗначенияСвойств(НоваяСтрока, Обход);
													if(true/*ЕстьСчетЗатрат*/)
													{
														//НоваяСтрока.СчетЗатратНУ = СчетЗатратНУ;
													}
													if(true/*ЕстьЕдиницаИзмеренияМест*/)
													{
														//ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуМестТабЧасти(НоваяСтрока, ДокОбъект, Ложь);
													}
													//НоваяСтрока.Количество 				   = ТекКоличество;
													if(true/*ЕстьСумма*/)
													{
														//НоваяСтрока.Сумма   			   = ТекСумма;
														//НоваяСтрока.СуммаРегл 			   = ТекСуммаБух;
														if(true/*ОтражатьВУправленческомУчете*/)
														{
															//НоваяСтрока.Цена				   = ?(НоваяСтрока.Количество <> 0, НоваяСтрока.Сумма / НоваяСтрока.Количество, 0);
														}
													}
													if(true/*ЕстьСуммаНал*/)
													{
														//НоваяСтрока.СуммаНал 			   = ТекСуммаНал;
													}
												}
												/*// по детальным записям
*/
												if(true/*ОтражатьВБухгалтерскомУчете И ВсегоКоличествоБух > 0*/)
												{
													//ТекСумма = Окр(?(ВсегоКоличество <> 0, ВсегоКоличествоБух * ВсегоСумма / ВсегоКоличество, 0), 2, 1);
													//ВсегоКоличество = ВсегоКоличество - ВсегоКоличествоБух;
													//ВсегоСумма = ВсегоСумма - ТекСумма;
													//НоваяСтрока = ТаблицаМатериалы.Добавить();
													//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоСчету);
													if(true/*ЕстьЕдиницаИзмеренияМест*/)
													{
														//ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуМестТабЧасти(НоваяСтрока, ДокОбъект, Ложь);
													}
													//НоваяСтрока.Количество 				   = ВсегоКоличествоБух;
													if(true/*ЕстьСумма*/)
													{
														//НоваяСтрока.Сумма   			   = ТекСумма;
														//НоваяСтрока.СуммаРегл 			   = ВсегоСуммаБух;
														if(true/*ОтражатьВУправленческомУчете*/)
														{
															//НоваяСтрока.Цена			   = ?(НоваяСтрока.Количество <> 0, НоваяСтрока.Сумма / НоваяСтрока.Количество, 0);
														}
													}
												}
											}
											/*// по счетам учета
*/
											if(true/*ОтражатьВУправленческомУчете И ВсегоКоличество > 0*/)
											{
												//НоваяСтрока = ТаблицаМатериалы.Добавить();
												//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоКоэф);
												if(true/*ЕстьЕдиницаИзмеренияМест*/)
												{
													//ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуМестТабЧасти(НоваяСтрока, ДокОбъект, Ложь);
												}
												//НоваяСтрока.Количество 				   = ВсегоКоличество;
												if(true/*ЕстьСумма*/)
												{
													//НоваяСтрока.Сумма   			   = ВсегоСумма;
													//НоваяСтрока.Цена				   = ?(НоваяСтрока.Количество <> 0, НоваяСтрока.Сумма / НоваяСтрока.Количество, 0);
												}
												if(true/*ОтражатьВБухгалтерскомУчете*/)
												{
													if(true/*ЕстьСумма*/)
													{
														/*НоваяСтрока.СуммаРегл = МодульВалютногоУчета.ПересчитатьВСуммуРегл(
													НоваяСтрока.Сумма, 
													ВалютаРегламентированногоУчета, 
													ВалютаУправленческогоУчета, 
													ДокОбъект.Дата
												);*/
													}
													if(true/*ЕстьСуммаНал*/)
													{
														//НоваяСтрока.СуммаНал = НоваяСтрока.СуммаРегл;
													}
													if(true/*ЕстьСчетЗатрат*/)
													{
														/*УправлениеЗатратами.ЗаполнитьСчетЗатратВСтрокеТабличногоПоля(
													НоваяСтрока, 
													ДокОбъект.ПодразделениеОрганизации, 
													НоваяСтрока.СтатьяЗатрат
												);*/
													}
												}
											}
										}
										/*// по коэф.
*/
									}
									//;;
								}
								//;;
							}
							//;;
						}
						//;;
					}
					//;;
				}
				//;;
			}
			if(true/*ЕстьРасчетСебестоимостиВыпуска*/)
			{
				/*ОбщегоНазначения.Сообщение("За текущий месяц проведен документ ""Расчет себестоимости"".
			|Заполнение по остаткам может быть выполнено неправильно!", СтатусСообщения.Внимание);*/
			}
		}
		// ЗаполнитьМатериалыПоОстаткамНЗП()
		// Процедура формирует таблицу остатков нематериальных затрат в незавершенном производстве,
		// При использовании режима РА процедура формирует остатки как производственных, так и непроизводственных затрат.
		//

		public void ЗаполнитьПрочиеЗатратыПоОстаткамНЗП(/*ДокОбъект, ТаблицаПрочиеЗатраты, ДопПараметры = Неопределено, СчетНУПрямыхРасходов = Ложь*/)
		{
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			if(true/*НЕ ОтражатьВУправленческомУчете
	   И НЕ ОтражатьВБухгалтерскомУчете
	   И НЕ ОтражатьВНалоговомУчете*/)
			{
				//ОбщегоНазначения.Сообщение("Документ не отражается ни в одном виде учета!" + Символы.ПС + "Заполнение не может быть выполнено!", СтатусСообщения.Внимание);
			}
			//МетаданныеДокумента = ДокОбъект.Метаданные();
			//ЕстьДатаОкончанияПериода = (МетаданныеДокумента.Реквизиты.Найти("ДатаОкончанияПериода") <> Неопределено);
			//ЕстьЗаказ = (МетаданныеДокумента.Реквизиты.Найти("Заказ") <> Неопределено);
			if(true/*ЕстьЗаказ*/)
			{
				if(true/*НЕ ЗначениеЗаполнено(ДокОбъект.Заказ)*/)
				{
					//ЕстьЗаказ = Ложь;
				}
			}
			//ИспользоватьРасширеннуюАналитику = УправлениеЗапасами.ИспользуетсяРасширеннаяАналитикаУчета(ДокОбъект.Дата);
			//ХарактерЗатрат = Неопределено;
			if(true/*НЕ ДопПараметры = Неопределено*/)
			{
				if(true/*ДопПараметры.Свойство("ХарЗатрат")*/)
				{
					//ХарактерЗатрат = ДопПараметры.ХарЗатрат;
					if(true/*НЕ ИспользоватьРасширеннуюАналитику*/)
					{
						/*// Заполненяем только производственными расходами
*/
						/*// Если среди переданных характеров нет "Производственных расходов", то прерываем выполнение
*/
						if(true/*ТипЗнч(ХарактерЗатрат) = Тип("Массив")*/)
						{
							/*// В качестве ХарактерЗатрат может быть передан массив.
*/
							if(true/*ХарактерЗатрат.Найти(Перечисления.ХарактерЗатрат.ПроизводственныеРасходы) = Неопределено*/)
							{
							}
						}
					}
				}
			}
			//ЕстьСчетЗатрат = НЕ ТаблицаПрочиеЗатраты.Колонки.Найти("СчетЗатрат") = Неопределено;
			//ЕстьСуммаНал   = НЕ ТаблицаПрочиеЗатраты.Колонки.Найти("СуммаНал") = Неопределено;
			//ЕстьСуммаРегл  = НЕ ТаблицаПрочиеЗатраты.Колонки.Найти("СуммаРегл") = Неопределено;
			/*// Отбор по характеру затрат
*/
			/*// МатериальныеЗатраты
*/
			/*// ИсключатьУслуги,
*/
			/*// ИсключатьДавальческоеСырье,
*/
			/*// ТолькоОтрицательныеОстатки,
*/
			/*// ТолькоВозвратныеОтходы,
*/
			/*// ЕстьСтатьяЗатрат
*/
			/*// ЕстьСчетЗатратНУ (если в результате заполнения должен быть указан счет НУ прямых расходов, то нам не важно, какой счет НУ в остатках НЗП)
*/
			//);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			//ЕстьРасчетСебестоимостиВыпуска = Ложь;
			//ОбходПоЗатратам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбходПоЗатратам.Следующий()*/)
			{
				if(true/*Не ЕстьРасчетСебестоимостиВыпуска*/)
				{
					//ЕстьРасчетСебестоимостиВыпуска = ОбходПоЗатратам.ЕстьРасчетСебестоимостиВыпуска;
				}
				//ОбходПоСтатьямЗатрат = ОбходПоЗатратам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ОбходПоСтатьямЗатрат.Следующий()*/)
				{
					//ОбходПоНомГруппам =ОбходПоСтатьямЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
					while(true/*ОбходПоНомГруппам.Следующий()*/)
					{
						//ОбходПоЗаказам = ОбходПоНомГруппам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
						while(true/*ОбходПоЗаказам.Следующий()*/)
						{
							//ВсегоСумма 		= ?(ОбходПоЗаказам.Сумма = NULL, 0, ОбходПоЗаказам.Сумма);
							//ВсегоСуммаРегл 	= ?(ОбходПоЗаказам.СуммаБух = NULL, 0, ОбходПоЗаказам.СуммаБух);
							//ВсегоСуммаНУ 	= ?(ОбходПоЗаказам.СуммаНал = NULL, 0, ОбходПоЗаказам.СуммаНал);
							//КурсНУ = ?(ВсегоСумма <> 0, ВсегоСуммаНУ / ВсегоСумма, 0);
							//Курс = ?(ВсегоСумма <> 0, ВсегоСуммаРегл / ВсегоСумма, 0);
							//ОбходПоСчету = ОбходПоЗаказам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							while(true/*ОбходПоСчету.Следующий()*/)
							{
								if(true/*НЕ ЗначениеЗаполнено(ОбходПоСчету.СчетЗатрат)*/)
								{
								}
								//ВсегоСуммаБух = ?( ОбходПоСчету.СуммаБух = NULL, 0, ОбходПоСчету.СуммаБух);
								//ВсегоСуммаНал = ?( ОбходПоСчету.СуммаНал = NULL, 0, ОбходПоСчету.СуммаНал);
								//Обход = ОбходПоСчету.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								while(true/*Обход.Следующий()*/)
								{
									//ТекСумма    = 0;
									//ТекСуммаБух = 0;
									//ТекСуммаНал = 0;
									//ТекСуммаНал   = Обход.СуммаНал;
									//ВсегоСуммаНал = ВсегоСуммаНал - ТекСуммаНал;
									if(true/*ВсегоСуммаБух >= ТекСуммаНал И ТекСуммаНал <> 0*/)
									{
										//ТекСуммаБух = ТекСуммаНал;
									}
									//ВсегоСуммаБух = ВсегоСуммаБух - ТекСуммаБух;
									if(true/*Курс = 0 И КурсНУ <> 0*/)
									{
										//ТекСумма = Окр(ТекСуммаНал / КурсНУ, 2, 1);
									}
									if(true/*ТекСумма > ВсегоСумма*/)
									{
										//ТекСумма = ВсегоСумма;
									}
									//ВсегоСумма    = ВсегоСумма - ТекСумма;
									if(true/*ТекСумма = 0 И ТекСуммабух = 0 И ТекСуммаНал = 0*/)
									{
									}
									//НоваяСтрока = ТаблицаПрочиеЗатраты.Добавить();
									//ЗаполнитьЗначенияСвойств(НоваяСтрока, Обход);
									if(true/*ТипЗнч(Обход.Номенклатура) = Тип("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск")*/)
									{
										//НоваяСтрока.СпособРаспределенияЗатратНаВыпуск = Обход.Номенклатура;
									}
									if(true/*ЕстьСуммаРегл И ОтражатьВБухгалтерскомУчете*/)
									{
										//НоваяСтрока.СуммаРегл = ТекСуммаБух;
									}
									if(true/*ОтражатьВУправленческомУчете*/)
									{
										//НоваяСтрока.Сумма = ТекСумма;
									}
									if(true/*ОтражатьВБухгалтерскомУчете
							   И ЕстьСчетЗатрат
							   И Не ЗначениеЗаполнено(НоваяСтрока.СчетЗатрат)*/)
									{
										//УправлениеЗатратами.ЗаполнитьСчетЗатратВСтрокеТабличногоПоля(НоваяСтрока, ДокОбъект.ПодразделениеОрганизации, НоваяСтрока.СтатьяЗатрат);
									}
									if(true/*ОтражатьВНалоговомУчете*/)
									{
										if(true/*ЕстьСуммаНал*/)
										{
											//НоваяСтрока.СуммаНал = ТекСуммаНал;
										}
										if(true/*ЕстьСчетЗатрат*/)
										{
											if(true/*ЗначениеЗаполнено(Обход.СчетЗатратНУ)*/)
											{
												//НоваяСтрока.СчетЗатратНУ = Обход.СчетЗатратНУ;
											}
										}
									}
								}
								/*// по детальным записям
*/
								if(true/*ОтражатьВБухгалтерскомУчете И ВсегоСуммаБух > 0*/)
								{
									//НоваяСтрока = ТаблицаПрочиеЗатраты.Добавить();
									//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоСчету);
									if(true/*ТипЗнч(ОбходПоСчету.Номенклатура) = Тип("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск")*/)
									{
										//НоваяСтрока.СпособРаспределенияЗатратНаВыпуск = ОбходПоСчету.Номенклатура;
									}
									if(true/*ЕстьСуммаРегл*/)
									{
										//НоваяСтрока.СуммаРегл = ВсегоСуммаБух;
									}
									if(true/*ЕстьСуммаНал*/)
									{
										//НоваяСтрока.СуммаНал = 0;
									}
									if(true/*ОтражатьВНалоговомУчете И ЕстьСчетЗатрат*/)
									{
										//НоваяСтрока.СчетЗатратНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Новый Структура("СчетБУ, ", НоваяСтрока.СчетЗатрат));
									}
								}
								if(true/*ОтражатьВНалоговомУчете И ВсегоСуммаНал > 0*/)
								{
									//НоваяСтрока = ТаблицаПрочиеЗатраты.Добавить();
									//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоСчету);
									if(true/*ТипЗнч(ОбходПоСчету.Номенклатура) = Тип("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск")*/)
									{
										//НоваяСтрока.СпособРаспределенияЗатратНаВыпуск = ОбходПоСчету.Номенклатура;
									}
									if(true/*ЕстьСуммаНал*/)
									{
										//НоваяСтрока.СуммаНал = ВсегоСуммаНал;
									}
								}
							}
							/*// по счетам учета
*/
							if(true/*ОтражатьВУправленческомУчете И ВсегоСумма > 0*/)
							{
								//НоваяСтрока = ТаблицаПрочиеЗатраты.Добавить();
								//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоЗаказам);
								if(true/*ТипЗнч(ОбходПоЗатратам.Номенклатура) = Тип("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск")*/)
								{
									//НоваяСтрока.СпособРаспределенияЗатратНаВыпуск = ОбходПоЗаказам.Номенклатура;
								}
								//НоваяСтрока.Сумма = ВсегоСумма;
								if(true/*ЕстьСуммаРегл*/)
								{
									//НоваяСтрока.СуммаРегл = 0;
								}
								if(true/*ЕстьСуммаНал*/)
								{
									//НоваяСтрока.СуммаНал = 0;
								}
								if(true/*ОтражатьВБухгалтерскомУчете И ЕстьСчетЗатрат*/)
								{
									//УправлениеЗатратами.ЗаполнитьСчетЗатратВСтрокеТабличногоПоля(НоваяСтрока, ДокОбъект.ПодразделениеОрганизации, НоваяСтрока.СтатьяЗатрат);
								}
							}
						}
						/*// по затрате
*/
					}
					/*// по номенклатурной группе
*/
				}
				/*// по заказам
*/
			}
			/*// по статье затрат
*/
			if(true/*ЕстьРасчетСебестоимостиВыпуска*/)
			{
				/*ОбщегоНазначения.Сообщение("За текущий месяц проведен документ ""Расчет себестоимости"".
			|Заполнение по остаткам может быть выполнено неправильно!", СтатусСообщения.Внимание);*/
			}
		}
		// ЗаполнитьПрочиеЗатратыПоОстаткамНЗП()
		// Процедура формирует таблицу остатков нематериальных затрат в затратах.
		//

		public void ЗаполнитьПрочиеЗатратыПоОстаткамЗатрат(/*ДокОбъект, ТаблицаПрочиеЗатраты, ДопПараметры = Неопределено*/)
		{
			//УпрУчет = ДокОбъект.ОтражатьВУправленческомУчете;
			//БухУчет = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//НалУчет = ДокОбъект.ОтражатьВНалоговомУчете;
			if(true/*НЕ (УпрУчет ИЛИ БухУчет ИЛИ НалУчет)*/)
			{
			}
			//МетаДок = ДокОбъект.Метаданные();
			if(true/*МетаДок.Реквизиты.Найти("Заказ") = Неопределено*/)
			{
				//УслПоЗаказу = "";
			}
			//УслПоХарЗатрат  = "";
			//МассивХарЗатрат = Неопределено;
			//МассивСчетаЗатрат_БУ = Неопределено;
			//МассивСчетаЗатрат_НУ = Неопределено;
			//ЕстьЗаполнениеПоОстаткам = Истина;
			if(true/*НЕ ДопПараметры = Неопределено*/)
			{
				if(true/*ДопПараметры.Свойство("ХарЗатрат")*/)
				{
					//УслПоСчетуЗатратБУ  = " И СчетУчета В ИЕРАРХИИ(&СчетаЗатратБУ) ";
					//УслПоСчетуЗатратНУ  = " И СчетУчета В ИЕРАРХИИ(&СчетаЗатратНУ) ";
					//УслПоХарЗатрат  = " И СтатьяЗатрат.ХарактерЗатрат В(&ХарЗатрат) ";
					//МассивХарЗатрат = ДопПараметры["ХарЗатрат"];
					//МассивСчетаЗатрат_БУ = Новый Массив;
					//МассивСчетаЗатрат_НУ = Новый Массив;
					if(true/*МассивСчетаЗатрат_БУ.Количество() = 0*/)
					{
						//ЕстьЗаполнениеПоОстаткам = Ложь;
					}
				}
			}
			//ИспользоватьРасширеннуюАналитику = УправлениеЗапасами.ИспользуетсяРасширеннаяАналитикаУчета(ДокОбъект.Дата);
			if(true/*ИспользоватьРасширеннуюАналитику
	   И ЕстьЗаполнениеПоОстаткам*/)
			{
			}
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	*
	|ИЗ (
	|";*/
			if(true/*УпрУчет*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
		|ВЫБРАТЬ
		|	РегЗатратыУпр.Подразделение        КАК Подразделение,
		|	РегЗатратыУпр.СтатьяЗатрат         КАК СтатьяЗатрат,
		|	РегЗатратыУпр.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
		|	РегЗатратыУпр.Заказ                КАК Заказ,
		|	РегЗатратыУпр.Проект               КАК Проект,
		|	NULL                               КАК Продукция,
		|	NULL                               КАК ХарактеристикаПродукции,
		|	NULL                               КАК СерияПродукции,
		|	""Упр""                            КАК ТипУчета,
		|	NULL                               КАК СчетЗатрат,
		|	РегЗатратыУпр.СуммаОстаток         КАК Сумма
		|ИЗ
		|	РегистрНакопления.Затраты.Остатки(
		|		&КонДата,
		|		Подразделение = &Подр " + УслПоЗаказу + УслПоХарЗатрат + "
		|		) КАК РегЗатратыУпр
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	РегБракУпр.Подразделение,
		|	РегБракУпр.СтатьяЗатрат,
		|	РегБракУпр.НоменклатурнаяГруппа,
		|	РегБракУпр.Заказ,
		|	NULL,
		|	РегБракУпр.Продукция,
		|	РегБракУпр.ХарактеристикаПродукции,
		|	РегБракУпр.СерияПродукции,
		|	""Упр"",
		|	NULL,
		|	РегБракУпр.СуммаОстаток
		|ИЗ
		|	РегистрНакопления.БракВПроизводстве.Остатки(
		|		&КонДата,
		|		Подразделение = &Подр " + УслПоЗаказу + УслПоХарЗатрат + "
		|		) КАК РегБракУпр
		|";*/
			}
			if(true/*УпрУчет И БухУчет*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
			|
			|	ОБЪЕДИНИТЬ
			|";*/
			}
			if(true/*БухУчет*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
		|ВЫБРАТЬ
		|	РегЗатратыБух.Подразделение        КАК Подразделение,
		|	РегЗатратыБух.СтатьяЗатрат         КАК СтатьяЗатрат,
		|	РегЗатратыБух.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
		|	РегЗатратыБух.Заказ                КАК Заказ,
		|	NULL							   КАК Проект,
		|	NULL                               КАК Продукция,
		|	NULL                               КАК ХарактеристикаПродукции,
		|	NULL                               КАК СерияПродукции,
		|	""Бух""                            КАК ТипУчета,
		|	РегЗатратыБух.СчетУчета            КАК СчетЗатрат,
		|	РегЗатратыБух.СуммаОстаток         КАК Сумма
		|ИЗ
		|	РегистрНакопления.ЗатратыБухгалтерскийУчет.Остатки(
		|		&КонДата,
		|		Подразделение = &ПодрОрг " + УслПоЗаказу + УслПоСчетуЗатратБУ + "
		|		) КАК РегЗатратыБух
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	РегБракБух.Подразделение,
		|	РегБракБух.СтатьяЗатрат,
		|	РегБракБух.НоменклатурнаяГруппа,
		|	РегБракБух.Заказ,
		|	NULL,
		|	РегБракБух.Продукция,
		|	РегБракБух.ХарактеристикаПродукции,
		|	РегБракБух.СерияПродукции,
		|	""Бух"",
		|	РегБракБух.СчетУчета,
		|	РегБракБух.СуммаОстаток
		|ИЗ
		|	РегистрНакопления.БракВПроизводствеБухгалтерскийУчет.Остатки(
		|		&КонДата,
		|		Подразделение = &ПодрОрг " + УслПоЗаказу + УслПоСчетуЗатратБУ + "
		|		) КАК РегБракБух
		|";*/
			}
			if(true/*БухУчет И НалУчет*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
		|
		|	ОБЪЕДИНИТЬ
		|";*/
			}
			if(true/*НалУчет*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
		|ВЫБРАТЬ
		|	РегЗатратыНал.Подразделение        КАК Подразделение,
		|	РегЗатратыНал.СтатьяЗатрат         КАК СтатьяЗатрат,
		|	РегЗатратыНал.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
		|	РегЗатратыНал.Заказ                КАК Заказ,
		|	NULL							   КАК Проект,
		|	NULL                               КАК Продукция,
		|	NULL                               КАК ХарактеристикаПродукции,
		|	NULL                               КАК СерияПродукции,
		|	""Нал""                            КАК ТипУчета,
		|	РегЗатратыНал.СчетУчета            КАК СчетЗатрат,
		|	РегЗатратыНал.СуммаОстаток + РегЗатратыНал.ПостояннаяРазницаОстаток КАК Сумма
		|ИЗ
		|	РегистрНакопления.ЗатратыНалоговыйУчет.Остатки(
		|		&КонДата,
		|		Подразделение = &ПодрОрг " + УслПоЗаказу + УслПоСчетуЗатратНУ + "
		|			) КАК РегЗатратыНал
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	РегБракНал.Подразделение,
		|	РегБракНал.СтатьяЗатрат,
		|	РегБракНал.НоменклатурнаяГруппа,
		|	РегБракНал.Заказ,
		|	NULL,
		|	РегБракНал.Продукция,
		|	РегБракНал.ХарактеристикаПродукции,
		|	РегБракНал.СерияПродукции,
		|	""Нал"",
		|	РегБракНал.СчетУчета,
		|	РегБракНал.СуммаОстаток + РегБракНал.ПостояннаяРазницаОстаток КАК Сумма
		|ИЗ
		|	РегистрНакопления.БракВПроизводствеНалоговыйУчет.Остатки(
		|		&КонДата,
		|		Подразделение = &ПодрОрг " + УслПоЗаказу + УслПоСчетуЗатратНУ + "
		|			) КАК РегБракНал
		|";*/
			}
			/*ТекстЗапроса = ТекстЗапроса + "
	|) КАК ЗапросОстаткиЗатрат
	|
	|УПОРЯДОЧИТЬ ПО
	|	СтатьяЗатрат,
	|	НоменклатурнаяГруппа,
	|	Заказ,
	|	Продукция,
	|	ХарактеристикаПродукции,
	|	СерияПродукции
	|
	|ИТОГИ
	|	СУММА(Сумма)
	|ПО
	|	СтатьяЗатрат,
	|	НоменклатурнаяГруппа,
	|	Заказ,
	|	Продукция,
	|	ХарактеристикаПродукции,
	|	СерияПродукции
	|";*/
			//Запрос = Новый Запрос;
			//Дата = УправлениеЗатратами.ПолучитьДатуДляЗапроса(ДокОбъект);
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("КонДата",      Новый Граница(Дата, ВидГраницы.Включая));
			//Запрос.УстановитьПараметр("Подр",         ДокОбъект.Подразделение);
			//Запрос.УстановитьПараметр("ПодрОрг", 	  ДокОбъект.ПодразделениеОрганизации);
			//Запрос.УстановитьПараметр("Заказ",        ?(НЕ ЗначениеЗаполнено(Заказ), Неопределено, Заказ));
			//Запрос.УстановитьПараметр("ХарЗатрат",    МассивХарЗатрат);
			//Запрос.УстановитьПараметр("СчетаЗатратБУ",  МассивСчетаЗатрат_БУ);
			//Запрос.УстановитьПараметр("СчетаЗатратНУ",  МассивСчетаЗатрат_НУ);
			//Запрос.УстановитьПараметр("ТекДок",       ДокОбъект.Ссылка);
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить( Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ПрямыеЗатраты);
			//Запрос.УстановитьПараметр( "КодыОпераций", МассивКодовОпераций);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			//ТабИтог = Новый ТаблицаЗначений;
			//ТабИтог.Колонки.Добавить( "Строка");
			//ТабИтог.Колонки.Добавить( "ФлагУпр", Новый ОписаниеТипов("Булево"));
			//ТабИтог.Колонки.Добавить( "ФлагБух", Новый ОписаниеТипов("Булево"));
			//ТабИтог.Колонки.Добавить( "ФлагНал", Новый ОписаниеТипов("Булево"));
			//ОбходПоСтатьям = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбходПоСтатьям.Следующий()*/)
			{
				//ОбходПоГруппам = ОбходПоСтатьям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ОбходПоГруппам.Следующий()*/)
				{
					//ОбходПоЗаказам = ОбходПоГруппам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
					while(true/*ОбходПоЗаказам.Следующий()*/)
					{
						//ОбходПоПродукции = ОбходПоЗаказам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
						while(true/*ОбходПоПродукции.Следующий()*/)
						{
							//ОбходПоХарПрод = ОбходПоПродукции.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							while(true/*ОбходПоХарПрод.Следующий()*/)
							{
								//ОбходПоСерПрод = ОбходПоХарПрод.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								while(true/*ОбходПоСерПрод.Следующий()*/)
								{
									//ТабИтог.Очистить();
									//Обход = ОбходПоСерПрод.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
									while(true/*Обход.Следующий()*/)
									{
										//ТекСтрока = ТабИтог.Найти( Ложь, "Флаг" + Обход.ТипУчета);
										if(true/*ТекСтрока = Неопределено*/)
										{
											//НоваяСтрока = ТаблицаПрочиеЗатраты.Добавить();
											//НоваяСтрока.СтатьяЗатрат = Обход.СтатьяЗатрат;
											//ЗаполнитьЗначенияСвойств(НоваяСтрока, Обход);
											//НоваяСтрока.Сумма = 0;
											//ТекСтрока = ТабИтог.Добавить();
											//ТекСтрока.Строка = НоваяСтрока;
										}
										//ТекСтрока["Флаг" + Обход.ТипУчета] = Истина;
										if(true/*Обход.ТипУчета = "Упр"*/)
										{
											//НоваяСтрока.Сумма = Обход.Сумма;
										}
									}
									if(true/*УпрУчет И (БухУчет ИЛИ НалУчет)*/)
									{
									}
								}
								//;;
							}
							//;;
						}
						//;;
					}
					//;;
				}
				//;;
			}
			//;;
		}
		// ЗаполнитьПрочиеЗатратыПоОстаткамЗатрат()
		// Процедура формирует таблицу остатков материалов по данным инвентаризации НЗП.
		//
		// Параметры:
		//	ДокОбъект - ДокументОбъект - Текущий документ
		//	ТабличнаяЧасть - ТабличнаяЧасть - Табличная часть документа
		//	ДокИнвентаризация - ДокументСсылка.ИнвентаризацияНЗП - Документ инвентаризации
		//  ТолькоОтрицательныеОстатки - Булево - Заполнять только отрицательными остатками
		//  ЕстьСумма - Булево - В табличной части есть реквизит "Сумма"
		//

		public void ЗаполнитьМатериалыПоИнвентаризацииНЗП(/*
	ДокОбъект, 
	ТабличнаяЧасть, 
	ДокИнвентаризация, 
	ТолькоОтрицательныеОстатки = Ложь,
	ЕстьСумма = Истина
	*/)
		{
			//ТаблицаМатериалы = ТабличнаяЧасть.Выгрузить();
			/*// ЕстьЕдиницаИзмерения
*/
			/*// ЕстьЕдиницаИзмеренияМест
*/
			//);
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			/*ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ДокИнв.Номенклатура КАК Номенклатура,
	|	ДокИнв.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	|	ДокИнв.СерияНоменклатуры КАК СерияНоменклатуры,
	|	ДокИнв.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	|	ДокИнв.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
	|	ДокИнв.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
	|	ДокИнв.Заказ КАК Заказ,
	|	ДокИнв.СтатьяЗатрат КАК СтатьяЗатрат,
	|	ДокИнв.СчетЗатрат КАК СчетЗатрат,
	|	ДокИнв.СчетЗатратНУ КАК СчетЗатратНУ,
	|	ДокИнв.Количество КАК КоличествоИнв,
	|	ИСТИНА КАК ЕстьИнвентаризация
	|ИЗ
	|	Документ.ИнвентаризацияНЗП.Материалы КАК ДокИнв
	|ГДЕ
	|	ДокИнв.Ссылка = &ДокИнв
	|
	|УПОРЯДОЧИТЬ ПО
	|	ДокИнв.НомерСтроки";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр( "ДокИнв",      ДокИнвентаризация);
			//РезультатЗапроса = Запрос.Выполнить().Выгрузить();
			//ТаблицаМатериалы.Колонки.Добавить("КоличествоИнв", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ТаблицаМатериалы.Колонки.Добавить("ЕстьИнвентаризация", Новый ОписаниеТипов("Булево"));
			if(true/*Не ЕстьСумма*/)
			{
				//ТаблицаМатериалы.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
				//ТаблицаМатериалы.Колонки.Добавить("СуммаРегл", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			}
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(РезультатЗапроса, ТаблицаМатериалы);
			/*ТаблицаМатериалы.Свернуть("
		|Номенклатура, 
		|ХарактеристикаНоменклатуры, 
		|СерияНоменклатуры, 
		|ЕдиницаИзмерения, 
		|ЕдиницаИзмеренияМест, 
		|Коэффициент, 
		|НоменклатурнаяГруппа, 
		|Заказ, 
		|СтатьяЗатрат, 
		|СчетЗатрат, 
		|СчетЗатратНУ
		|", 
		"Количество, КоличествоМест, Сумма, СуммаРегл, КоличествоИнв, ЕстьИнвентаризация");*/
			//ТаблицаМатериалы.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//КолвоЭлементов = ТаблицаМатериалы.Количество();
			//ТабличнаяЧасть.Загрузить(ТаблицаМатериалы);
		}
		// ЗаполнитьМатериалыПоИнвентаризацииНЗП()
		// Процедура формирует таблицу остатков нематериальных затрат по данным инвентаризации НЗП.
		//

		public void ЗаполнитьПрочиеЗатратыПоИнвентаризацииНЗП(/*ДокОбъект, ТабличнаяЧасть*/)
		{
			//ТаблицаПрочиеЗатраты = ТабличнаяЧасть.Выгрузить();
			//ДопПараметры = Новый Структура;
			//Параметры = Новый Массив;
			//Параметры.Добавить(Перечисления.ХарактерЗатрат.ПроизводственныеРасходы);
			//ДопПараметры.Вставить("ХарЗатрат", Параметры);
			//ЗаполнитьПрочиеЗатратыПоОстаткамНЗП(ДокОбъект, ТаблицаПрочиеЗатраты, ДопПараметры);
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ИнвентаризацияНЗП.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
	|	ВЫБОР КОГДА ИнвентаризацияНЗП.Заказ = &ПустойЗаказПокупателя 
	|		  ИЛИ ИнвентаризацияНЗП.Заказ = &ПустойЗаказНаПроизводство ТОГДА
	|		Неопределено
	|	КОГДА ИнвентаризацияНЗП.Заказ ССЫЛКА Документ.ЗаказНаПроизводство ТОГДА
	|		ВЫБОР КОГДА &ИспользоватьЗаказыНаПроизводство И &УчетЗатратПоЗаказамНаПроизводство ТОГДА
	|			ИнвентаризацияНЗП.Заказ
	|		ИНАЧЕ
	|			Неопределено
	|		КОНЕЦ
	|	ИНАЧЕ
	|		ИнвентаризацияНЗП.Заказ
	|	КОНЕЦ КАК Заказ,
	|	ИнвентаризацияНЗП.СтатьяЗатрат КАК СтатьяЗатрат,
	|	ИнвентаризацияНЗП.СпособРаспределенияЗатратНаВыпуск КАК СпособРаспределенияЗатратНаВыпуск,
	|	ВЫБОР КОГДА &ОтражатьВБухгалтерскомУчете ТОГДА
	|		ИнвентаризацияНЗП.СчетЗатрат
	|	ИНАЧЕ
	|		Неопределено
	|	КОНЕЦ КАК СчетЗатрат,
	|	ВЫБОР КОГДА &ОтражатьВНалоговомУчете ТОГДА
	|		ИнвентаризацияНЗП.СчетЗатратНУ
	|	ИНАЧЕ
	|		Неопределено
	|	КОНЕЦ КАК СчетЗатратНУ,
	|	ИнвентаризацияНЗП.Сумма	КАК СуммаИнв,
	|	ИнвентаризацияНЗП.СуммаРегл	КАК СуммаИнвРегл,
	|	ИнвентаризацияНЗП.СуммаНал КАК СуммаИнвНал,
	|	Истина КАК ЕстьИнвентаризация
	|ИЗ
	|	Документ.ИнвентаризацияНЗП.ПрочиеЗатраты КАК ИнвентаризацияНЗП
	|
	|ГДЕ
	|	ИнвентаризацияНЗП.Ссылка = &ИнвентаризацияНЗП
	|
	|УПОРЯДОЧИТЬ ПО
	|	НоменклатурнаяГруппа,
	|	Заказ,
	|	СтатьяЗатрат,
	|	СпособРаспределенияЗатратНаВыпуск,
	|	СчетЗатрат,
	|	СчетЗатратНУ
	|";*/
			if(true/*ОтражатьВБухгалтерскомУчете*/)
			{
				//УчетЗатратПоЗаказамНаПроизводство = УчетЗатратПоЗаказамНаПроизводство(ДокОбъект.Дата, ДокОбъект.Организация, "Бух");
			}
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("ИнвентаризацияНЗП", 					ДокОбъект.ДокументИнвентаризация);
			//Запрос.УстановитьПараметр("ПустойЗаказПокупателя", 				Документы.ЗаказПокупателя.ПустаяСсылка());
			//Запрос.УстановитьПараметр("ПустойЗаказНаПроизводство", 			Документы.ЗаказНаПроизводство.ПустаяСсылка());
			//Запрос.УстановитьПараметр("ИспользоватьЗаказыНаПроизводство", 	УправлениеЗаказами.ИспользоватьЗаказыНаПроизводство());
			//Запрос.УстановитьПараметр("УчетЗатратПоЗаказамНаПроизводство", 	УчетЗатратПоЗаказамНаПроизводство);
			//Запрос.УстановитьПараметр("ОтражатьВБухгалтерскомУчете", 		ОтражатьВБухгалтерскомУчете);
			//Запрос.УстановитьПараметр("ОтражатьВНалоговомУчете", 			ОтражатьВНалоговомУчете);
			//РезультатЗапроса = Запрос.Выполнить().Выгрузить();
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("СуммаИнв", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("СуммаИнвРегл", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("СуммаИнвНал", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("ЕстьИнвентаризация", Новый ОписаниеТипов("Булево"));
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(РезультатЗапроса, ТаблицаПрочиеЗатраты);
			/*ТаблицаПрочиеЗатраты.Свернуть("НоменклатурнаяГруппа, Заказ, СтатьяЗатрат, СпособРаспределенияЗатратНаВыпуск, СчетЗатрат, СчетЗатратНУ", 
							"Сумма, СуммаРегл, СуммаНал, СуммаИнв, СуммаИнвРегл, СуммаИнвНал, ЕстьИнвентаризация");*/
			//КолвоЭлементов = ТаблицаПрочиеЗатраты.Количество();
			//ТабличнаяЧасть.Загрузить(ТаблицаПрочиеЗатраты);
		}
		// ЗаполнитьПрочиеЗатратыПоИнвентаризацииНЗП()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ ПО ВЫПУСКУ ПРОДУКЦИИ
		// Функция формирует текст запроса по выпуску продукции и услуг.
		//
		// Возвращаемое значение:
		//	Строка - Текст запроса
		//

		public object СформироватьТекстЗапросаПоВыпускуРасширеннаяАналитика(/**/)
		{
			/*ТекстЗапроса = "
	|	ВЫБРАТЬ
	|		РегистрАналитикаРаспределенияЗатрат.Продукция,
	|		РегистрАналитикаРаспределенияЗатрат.ХарактеристикаПродукции,
	|		РегистрАналитикаРаспределенияЗатрат.СерияПродукции,
	|		РегистрАналитикаРаспределенияЗатрат.Спецификация,
	|		РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	|		РегистрАналитикаУчетаПартий.Заказ,
	|		
	|		//ДляУпрУчета Неопределено КАК СчетЗатрат,
	|		//ДляУпрУчета Неопределено КАК СчетЗатратНУ,
	|
	|		//ДляБухУчета РегистрАналитикаВидаУчета.СчетУчета КАК СчетЗатрат,
	|		//ДляБухУчета РегистрАналитикаВидаУчета.СчетУчетаНУ КАК СчетЗатратНУ,
	|
	|		//ДляУпрУчета ВыпускПродукции.КоличествоПриход КАК Количество,
	|		//ДляУпрУчета 0 КАК КоличествоБух,
	|		//ДляУпрУчета 0 КАК КоличествоНал
	|
	|		//ДляБухУчета 0 КАК Количество,
	|		//ДляБухУчета ВыпускПродукции.КоличествоПриход КАК КоличествоБух,
	|		//ДляБухУчета ВыпускПродукции.КоличествоПриход КАК КоличествоНал
	|
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл%.Обороты(&НачГраница, &КонГраница, Период,
	|			АналитикаВидаУчета В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|				ГДЕ
	|					(&ВидВыпуска <> ЗНАЧЕНИЕ(Перечисление.ВидыВыпуска.Наработка)
	|					И РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Выпуск)
	|					)
	|					//ДляУпрУчета И Подразделение = &Подразделение
	|					//ДляРеглУчета И ПодразделениеОрганизации = &ПодразделениеОрганизации
	|				)
	|			//ЕстьЗаказ И АналитикаУчетаПартий В (
	|			//ЕстьЗаказ 	ВЫБРАТЬ
	|			//ЕстьЗаказ 		Ссылка
	|			//ЕстьЗаказ 	ИЗ
	|			//ЕстьЗаказ 		РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|			//ЕстьЗаказ 	ГДЕ
	|			//ЕстьЗаказ 		Заказ = &Заказ
	|			//ЕстьЗаказ 	)
	|			
	|		) КАК ВыпускПродукции
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|		ПО
	|			ВыпускПродукции.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	|		ПО
	|			ВыпускПродукции.АналитикаРаспределенияЗатрат = РегистрАналитикаРаспределенияЗатрат.Ссылка
	|			
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|		ПО
	|			ВыпускПродукции.АналитикаУчетаПартий = РегистрАналитикаУчетаПартий.Ссылка
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|	ВЫБРАТЬ
	|		РегистрАналитикаРаспределенияЗатрат.Продукция,
	|		РегистрАналитикаРаспределенияЗатрат.ХарактеристикаПродукции,
	|		РегистрАналитикаРаспределенияЗатрат.СерияПродукции,
	|		РегистрАналитикаРаспределенияЗатрат.Спецификация,
	|		РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	|		РегистрАналитикаУчетаПартий.Заказ,
	|		
	|		//ДляУпрУчета Неопределено КАК СчетЗатрат,
	|		//ДляУпрУчета Неопределено КАК СчетЗатратНУ,
	|
	|		//ДляБухУчета РегистрАналитикаВидаУчета.СчетУчета КАК СчетЗатрат,
	|		//ДляБухУчета РегистрАналитикаВидаУчета.СчетУчетаНУ КАК СчетЗатратНУ,
	|
	|		//ДляУпрУчета ВыпускПродукции.КоличествоНачальныйОстаток + ВыпускПродукции.КоличествоПриход КАК Количество,
	|		//ДляУпрУчета 0 КАК КоличествоБух,
	|		//ДляУпрУчета 0 КАК КоличествоНал
	|
	|		//ДляБухУчета 0 КАК Количество,
	|		//ДляБухУчета ВыпускПродукции.КоличествоНачальныйОстаток + ВыпускПродукции.КоличествоПриход КАК КоличествоБух,
	|		//ДляБухУчета ВыпускПродукции.КоличествоНачальныйОстаток + ВыпускПродукции.КоличествоПриход КАК КоличествоНал
	|
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл%.ОстаткиИОбороты(&НачГраница, &КонГраница, Период, ,
	|			АналитикаВидаУчета В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|				ГДЕ
	|					(&ВидВыпуска = ЗНАЧЕНИЕ(Перечисление.ВидыВыпуска.Наработка)
	|					И РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Наработка)
	|					)
	|					//ДляУпрУчета И Подразделение = &Подразделение
	|					//ДляРеглУчета И ПодразделениеОрганизации = &ПодразделениеОрганизации
	|				)
	|			//ЕстьЗаказ И АналитикаУчетаПартий В (
	|			//ЕстьЗаказ 	ВЫБРАТЬ
	|			//ЕстьЗаказ 		Ссылка
	|			//ЕстьЗаказ 	ИЗ
	|			//ЕстьЗаказ 		РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|			//ЕстьЗаказ 	ГДЕ
	|			//ЕстьЗаказ 		Заказ = &Заказ
	|			//ЕстьЗаказ 	)
	|			
	|		) КАК ВыпускПродукции
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|		ПО
	|			ВыпускПродукции.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	|		ПО
	|			ВыпускПродукции.АналитикаРаспределенияЗатрат = РегистрАналитикаРаспределенияЗатрат.Ссылка
	|			
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	|		ПО
	|			ВыпускПродукции.АналитикаУчетаПартий = РегистрАналитикаУчетаПартий.Ссылка
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаПоВыпускуРасширеннаяАналитика()
		// Функция формирует текст запроса по выпуску продукции и услуг.
		//
		// Возвращаемое значение:
		//	Строка - Текст запроса
		//

		public object СформироватьТекстЗапросаПоВыпуску(/**/)
		{
			/*ТекстЗапроса = "
	|	ВЫБРАТЬ
	|		ВыпускПродукции.Продукция,
	|		ВыпускПродукции.ХарактеристикаПродукции,
	|		ВыпускПродукции.СерияПродукции,
	|		ВыпускПродукции.Спецификация,
	|		ВыпускПродукции.НоменклатурнаяГруппа,
	|		ВыпускПродукции.Заказ,
	|		
	|		//ДляУпрУчета Неопределено КАК СчетЗатрат,
	|		//ДляУпрУчета Неопределено КАК СчетЗатратНУ,
	|
	|		//ДляБухУчета ВыпускПродукции.СчетУчетаНЗП КАК СчетЗатрат,
	|		//ДляБухУчета Неопределено КАК СчетЗатратНУ,
	|
	|		//ДляНалУчета ВыпускПродукцииБух.СчетУчетаНЗП КАК СчетЗатрат,
	|		//ДляНалУчета ВыпускПродукции.СчетУчетаНЗП КАК СчетЗатратНУ,
	|		
	|		//ДляУпрУчета ВыпускПродукции.Количество КАК Количество,
	|		//ДляУпрУчета 0 КАК КоличествоБух,
	|		//ДляУпрУчета 0 КАК КоличествоНал
	|
	|		//ДляБухУчета 0 КАК Количество,
	|		//ДляБухУчета ВыпускПродукции.Количество КАК КоличествоБух,
	|		//ДляБухУчета 0 КАК КоличествоНал
	|
	|		//ДляНалУчета 0 КАК Количество,
	|		//ДляНалУчета 0 КАК КоличествоБух,
	|		//ДляНалУчета ВыпускПродукции.Количество КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|
	|	//ДляНалУчета ЛЕВОЕ СОЕДИНЕНИЕ (
	|	//ДляНалУчета 	ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	//ДляНалУчета 		ВыпускПродукции.Продукция,
	|	//ДляНалУчета 		ВыпускПродукции.ХарактеристикаПродукции,
	|	//ДляНалУчета 		ВыпускПродукции.СерияПродукции,
	|	//ДляНалУчета 		ВыпускПродукции.Спецификация,
	|	//ДляНалУчета 		ВыпускПродукции.НоменклатурнаяГруппа,
	|	//ДляНалУчета 		ВыпускПродукции.Заказ,
	|	//ДляНалУчета 		ВыпускПродукции.ДокументВыпуска,
	|	//ДляНалУчета 		ВыпускПродукции.Качество,
	|	//ДляНалУчета 		ВыпускПродукции.СчетУчетаНЗП
	|	//ДляНалУчета ИЗ
	|	//ДляНалУчета 	РегистрНакопления.ВыпускПродукцииБухгалтерскийУчет КАК ВыпускПродукции
	|	//ДляНалУчета ГДЕ
	|	//ДляНалУчета 	ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|	//ДляНалУчета 	И ВыпускПродукции.КодОперации В (&КодыОпераций)
	|	//ДляНалУчета 	//ДляУпрУчета И ВыпускПродукции.Подразделение = &Подразделение
	|	//ДляНалУчета 	//ДляРеглУчета И ВыпускПродукции.Подразделение = &ПодразделениеОрганизации
	|	//ДляНалУчета 	//ЕстьЗаказ И Заказ = &Заказ
	|   //ДляНалУчета 
	|	//ДляНалУчета 	) КАК ВыпускПродукцииБух
	|	//ДляНалУчета ПО
	|	//ДляНалУчета 	ВыпускПродукции.Продукция = ВыпускПродукцииБух.Продукция
	|	//ДляНалУчета 	И ВыпускПродукции.ХарактеристикаПродукции = ВыпускПродукцииБух.ХарактеристикаПродукции
	|	//ДляНалУчета 	И ВыпускПродукции.СерияПродукции = ВыпускПродукцииБух.СерияПродукции
	|	//ДляНалУчета 	И ВыпускПродукции.Спецификация = ВыпускПродукцииБух.Спецификация
	|	//ДляНалУчета 	И ВыпускПродукции.НоменклатурнаяГруппа = ВыпускПродукцииБух.НоменклатурнаяГруппа
	|	//ДляНалУчета 	И ВыпускПродукции.Заказ = ВыпускПродукцииБух.Заказ
	|	//ДляНалУчета 	И ВыпускПродукции.ДокументВыпуска = ВыпускПродукцииБух.ДокументВыпуска
	|	//ДляНалУчета 	И ВыпускПродукции.Качество = ВыпускПродукцииБух.Качество
	|
	|	ГДЕ
	|		ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|		И ВыпускПродукции.КодОперации В (&КодыОпераций)
	|		//ДляУпрУчета И ВыпускПродукции.Подразделение = &Подразделение
	|		//ДляРеглУчета И ВыпускПродукции.Подразделение = &ПодразделениеОрганизации
	|		//ЕстьЗаказ И ВыпускПродукции.Заказ = &Заказ
    |";*/
			return null;
		}
		// СформироватьТекстЗапросаПоВыпуску()
		// Функция формирует текст запроса по выпуску продукции и услуг.
		//
		// Возвращаемое значение:
		//	Строка - Текст запроса
		//

		public object СформироватьТекстЗапросаПоВыпускуНаработка(/**/)
		{
			/*ТекстЗапроса = "
	|	ВЫБРАТЬ
	|		ВыпускПродукции.Продукция,
	|		ВыпускПродукции.ХарактеристикаПродукции,
	|		Неопределено КАК СерияПродукции,
	|		Неопределено КАК Спецификация,
	|		ВыпускПродукции.НоменклатурнаяГруппа,
	|		ВыпускПродукции.Заказ,
	|		
	|		Неопределено КАК СчетЗатрат,
	|		Неопределено КАК СчетЗатратНУ,
	|		
	|		//ДляУпрУчета ВыпускПродукции.КоличествоОстаток КАК Количество,
	|		//ДляУпрУчета 0 КАК КоличествоБух,
	|		//ДляУпрУчета 0 КАК КоличествоНал
	|
	|		//ДляБухУчета 0 КАК Количество,
	|		//ДляБухУчета ВыпускПродукции.КоличествоОстаток КАК КоличествоБух,
	|		//ДляБухУчета 0 КАК КоличествоНал
	|
	|		//ДляНалУчета 0 КАК Количество,
	|		//ДляНалУчета ВыпускПродукции.КоличествоОстаток КАК КоличествоБух,
	|		//ДляНалУчета 0 КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ВыпускПродукцииНаработка.Остатки(&КонДата, 
	|			//ДляУпрУчета Подразделение = &Подразделение
	|			//ДляРеглУчета Подразделение = &ПодразделениеОрганизации
	|			//ЕстьЗаказ И Заказ = &Заказ
	|		) КАК ВыпускПродукции
    |";*/
			return null;
		}
		// СформироватьТекстЗапросаПоВыпускуНаработка()
		// Функция формирует запрос по выпуску продукции и услуг.
		//
		// Параметры:
		//	ДокументОбъект - ДокументОбъект - Документ
		//	МетаданныеДокумента - Метаданные - Метаданные документа
		//	ВидВыпуска - ПеречислениеСсылка.ВидыВыпуска - Вид выпуска
		//	ЕстьДатаНачалаПериода - Булево - Есть Дата начала периода в шапке документа
		//	ЕстьДатаОкончанияПериода - Булево - Есть Дата окончания периода в шапке документа
		//	ЕстьЗаказ - Булево - Есть заказ в шапке документа
		//
		// Возвращаемое значение:
		//	Запрос - Запрос по выпуску продукции и услуг
		//

		public object СформироватьЗапросПоВыпуску(/*
	ДокументОбъект,
	МетаданныеДокумента,
	ВидВыпуска,
	ЕстьДатаНачалаПериода,
	ЕстьДатаОкончанияПериода,
	ЕстьЗаказ
	*/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ВыпускПродукции.Продукция КАК Номенклатура,
	|	ВыпускПродукции.ХарактеристикаПродукции КАК ХарактеристикаНоменклатуры,
	|	ВыпускПродукции.СерияПродукции КАК СерияНоменклатуры,
	|	ВыпускПродукции.Спецификация,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	ВыпускПродукции.Заказ,
	|	
	|	ВыпускПродукции.Продукция.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	|	ВыпускПродукции.Продукция.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
	|	
	|	ВыпускПродукции.СчетЗатрат,
	|	ВыпускПродукции.СчетЗатратНУ,
	|	
	|	СУММА(ВыпускПродукции.Количество) КАК Количество,
	|	СУММА(ВыпускПродукции.КоличествоБух) КАК КоличествоБух,
	|	СУММА(ВыпускПродукции.КоличествоНал) КАК КоличествоНал
	|	
	|ИЗ (
	|
	|	//ДляУпрУчета //ТекстЗапросаПоВыпускуПродукцииУУ
	|	//ДляУпрУчета //ДляБухУчета ОБЪЕДИНИТЬ ВСЕ
	|	//ДляБухУчета //ТекстЗапросаПоВыпускуПродукцииБУ
	|	//ДляБухУчета //ДляНалУчета ОБЪЕДИНИТЬ ВСЕ
	|	//ДляНалУчета //ТекстЗапросаПоВыпускуПродукцииНУ
	|	) КАК ВыпускПродукции
	|
	|СГРУППИРОВАТЬ ПО
	|	ВыпускПродукции.Продукция,
	|	ВыпускПродукции.ХарактеристикаПродукции,
	|	ВыпускПродукции.СерияПродукции,
	|	ВыпускПродукции.Спецификация,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	ВыпускПродукции.Заказ,
	|	
	|	ВыпускПродукции.Продукция.ЕдиницаХраненияОстатков,
	|	ВыпускПродукции.Продукция.ЕдиницаХраненияОстатков.Коэффициент,
	|	
	|	ВыпускПродукции.СчетЗатрат,
	|	ВыпускПродукции.СчетЗатратНУ
	|
	|УПОРЯДОЧИТЬ ПО
	|	ВыпускПродукции.Продукция,
	|	ВыпускПродукции.ХарактеристикаПродукции,
	|	ВыпускПродукции.СерияПродукции,
	|	ВыпускПродукции.Спецификация,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	ВыпускПродукции.Заказ,
	|	ВыпускПродукции.СчетЗатрат,
	|	ВыпускПродукции.СчетЗатратНУ
	|
	|ИТОГИ 
	|	СУММА(Количество), СУММА(КоличествоБух), СУММА(КоличествоНал)
	|ПО
	|	ВыпускПродукции.Продукция,
	|	ВыпускПродукции.ХарактеристикаПродукции,
	|	ВыпускПродукции.СерияПродукции,
	|	ВыпускПродукции.Спецификация,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	ВыпускПродукции.Заказ,
	|	ВыпускПродукции.СчетЗатрат
	|";*/
			/*ИспользоватьРасширеннуюАналитику = глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат") 
		И (глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат") <= ДокументОбъект.Дата);*/
			if(true/*ИспользоватьРасширеннуюАналитику*/)
			{
				//РежимИспользованияРасширеннойАналитики = глЗначениеПеременной("РежимИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат");
				if(true/*РежимИспользованияРасширеннойАналитики = Перечисления.РежимыИспользованияРасширеннойАналитики.УправленческийИРегламентированныйУчет
		   И ДокументОбъект.ОтражатьВУправленческомУчете*/)
				{
					//ИспользоватьДанныеУправленческогоУчета = Истина;
					//ИспользоватьДанныеБухгалтерскогоУчета  = Ложь;
				}
				//ИспользоватьДанныеНалоговогоУчета = Ложь;
			}
			if(true/*ИспользоватьДанныеУправленческогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляУпрУчета", "");
			}
			if(true/*ИспользоватьДанныеБухгалтерскогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляБухУчета", "");
			}
			if(true/*ИспользоватьДанныеНалоговогоУчета*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляНалУчета", "");
			}
			if(true/*ИспользоватьРасширеннуюАналитику*/)
			{
				//ТекстЗапросаПоВыпускуСКомментариями = СформироватьТекстЗапросаПоВыпускуРасширеннаяАналитика();
			}
			if(true/*ИспользоватьДанныеУправленческогоУчета*/)
			{
				/*ТекстЗапросаПоВыпуску = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоВыпускуСКомментариями,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоВыпускуПродукцииУУ",
			ТекстЗапросаПоВыпуску
		);*/
			}
			if(true/*ИспользоватьДанныеБухгалтерскогоУчета*/)
			{
				/*ТекстЗапросаПоВыпуску = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоВыпускуСКомментариями,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоВыпускуПродукцииБУ",
			ТекстЗапросаПоВыпуску
		);*/
			}
			if(true/*ИспользоватьДанныеНалоговогоУчета*/)
			{
				/*ТекстЗапросаПоВыпуску = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
			ТекстЗапросаПоВыпускуСКомментариями,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете
		);*/
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, 
			"//ТекстЗапросаПоВыпускуПродукцииНУ",
			ТекстЗапросаПоВыпуску
		);*/
			}
			if(true/*ЕстьЗаказ*/)
			{
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ЕстьЗаказ", "");
			}
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			/*НачДата = ?(ЕстьДатаНачалаПериода И ЗначениеЗаполнено(ДокументОбъект.ДатаНачалаПериода), 
		ДокументОбъект.ДатаНачалаПериода, 
		НачалоМесяца(ДокументОбъект.Дата));*/
			//КонДата = УправлениеЗатратами.ПолучитьДатуДляЗапроса(ДокументОбъект, МетаданныеДокумента);
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("НачДата", НачДата);
			//Запрос.УстановитьПараметр("КонДата", КонДата);
			//Запрос.УстановитьПараметр("НачГраница", Новый Граница(НачДата, ВидГраницы.Включая));
			//Запрос.УстановитьПараметр("КонГраница", Новый Граница(КонДата, ВидГраницы.Включая));
			//Запрос.УстановитьПараметр("Подразделение",  ДокументОбъект.Подразделение);
			//Запрос.УстановитьПараметр("ПодразделениеОрганизации", ДокументОбъект.ПодразделениеОрганизации);
			//Запрос.УстановитьПараметр("Заказ", ?(ЕстьЗаказ И ЗначениеЗаполнено(ДокументОбъект.Заказ), ДокументОбъект.Заказ, Неопределено));
			//Запрос.УстановитьПараметр("ВидВыпуска", ВидВыпуска);
			//МассивКодовОпераций= Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнешниеУслуги);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПостЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПроизводство);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаСчет);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксНаСклад);
			//Запрос.УстановитьПараметр("КодыОпераций", МассивКодовОпераций);
			return null;
		}
		// СформироватьЗапросПоВыпуску()
		// Процедура формирует таблицу выпуска продукции.
		//
		// Параметры:
		//	ДокОбъект - ДокументОбъект - Документ
		//	ТаблицаПродукция - ТаблицаЗначений - Табличная часть документа
		//	ВидВыпуска - ПеречислениеСсылка.ВидыВыпуска - Вид выпуска
		//

		public void ЗаполнитьПродукциюПоВыпуску(/*
	ДокОбъект, 
	ТаблицаПродукция,
	ВидВыпуска = Неопределено
	*/)
		{
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			if(true/*Не ОтражатьВУправленческомУчете И Не ОтражатьВБухгалтерскомУчете И Не ОтражатьВНалоговомУчете*/)
			{
				//ОбщегоНазначения.Сообщение("Документ не отражается ни в одном виде учета!" + Символы.ПС + "Заполнение не может быть выполнено!", СтатусСообщения.Внимание);
			}
			//МетаданныеДокумента = ДокОбъект.Метаданные();
			//ЕстьДатаНачалаПериода = (МетаданныеДокумента.Реквизиты.Найти("ДатаНачалаПериода") <> Неопределено);
			//ЕстьДатаОкончанияПериода = (МетаданныеДокумента.Реквизиты.Найти("ДатаОкончанияПериода") <> Неопределено);
			if(true/*МетаданныеДокумента.Реквизиты.Найти("Заказ") <> Неопределено*/)
			{
				//ЕстьЗаказ = ЗначениеЗаполнено(ДокОбъект.Заказ);
			}
			/*Запрос = СформироватьЗапросПоВыпуску(
		ДокОбъект,
		МетаданныеДокумента,
		ВидВыпуска,
		ЕстьДатаНачалаПериода,
		ЕстьДатаОкончанияПериода,
		ЕстьЗаказ
	);*/
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			if(true/*ТаблицаПродукция.Колонки.Найти("ЕдиницаИзмерения") = Неопределено*/)
			{
				//ТаблицаПродукция.Колонки.Добавить("ЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"));
			}
			if(true/*ТаблицаПродукция.Колонки.Найти("СчетЗатрат") = Неопределено*/)
			{
				//ТаблицаПродукция.Колонки.Добавить("СчетЗатрат", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			}
			if(true/*ТаблицаПродукция.Колонки.Найти("СчетЗатратНУ") = Неопределено*/)
			{
				//ТаблицаПродукция.Колонки.Добавить("СчетЗатратНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			}
			if(true/*ОтражатьВБухгалтерскомУчете*/)
			{
				//СчетаУчетаЗатрат = УправлениеЗатратами.ПолучитьСчетаУчетаСтатьиЗатрат(ДокОбъект.ПодразделениеОрганизации, Неопределено);
				//СчетЗатрат = СчетаУчетаЗатрат.СчетУчетаБУ;
				//СчетЗатратНУ = СчетаУчетаЗатрат.СчетУчетаНУ;
			}
			//ОбходПоПродукции = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбходПоПродукции.Следующий()*/)
			{
				//ОбходПоХарактеристикам = ОбходПоПродукции.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ОбходПоХарактеристикам.Следующий()*/)
				{
					//ОбходПоСериям = ОбходПоХарактеристикам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
					while(true/*ОбходПоСериям.Следующий()*/)
					{
						//ОбходПоСпецификациям = ОбходПоСериям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
						while(true/*ОбходПоСпецификациям.Следующий()*/)
						{
							//ОбходПоНомГруппам = ОбходПоСпецификациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							while(true/*ОбходПоНомГруппам.Следующий()*/)
							{
								//ОбходПоЗаказам = ОбходПоНомГруппам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								while(true/*ОбходПоЗаказам.Следующий()*/)
								{
									//ВсегоКоличество = ОбходПоЗаказам.Количество;
									//ОбходПоСчету = ОбходПоЗаказам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
									while(true/*ОбходПоСчету.Следующий()*/)
									{
										//ВсегоКоличествоБух = ОбходПоСчету.КоличествоБух;
										//Обход = ОбходПоСчету.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
										while(true/*Обход.Следующий()*/)
										{
											if(true/*ОтражатьВНалоговомУчете*/)
											{
												if(true/*НЕ ЗначениеЗаполнено(Обход.СчетЗатратНУ)*/)
												{
												}
												//ТекКоличество = Обход.КоличествоНал;
											}
											if(true/*ТекКоличество = 0*/)
											{
											}
											//ВсегоКоличество = ВсегоКоличество - ТекКоличество;
											//ВсегоКоличествоБух = ВсегоКоличествоБух - ТекКоличество;
											//НоваяСтрока = ТаблицаПродукция.Добавить();
											//ЗаполнитьЗначенияСвойств(НоваяСтрока,Обход);
											//НоваяСтрока.Количество 	= ТекКоличество;
											if(true/*ОтражатьВБухгалтерскомУчете*/)
											{
												//НоваяСтрока.СчетЗатрат = Обход.СчетЗатрат;
											}
											if(true/*ОтражатьВНалоговомУчете*/)
											{
												//НоваяСтрока.СчетЗатратНУ = Обход.СчетЗатратНУ;
											}
										}
										/*// по детальным записям
*/
										if(true/*ОтражатьВБухгалтерскомУчете И ВсегоКоличествоБух > 0*/)
										{
											//ВсегоКоличество = ВсегоКоличество - ВсегоКоличествоБух;
											//НоваяСтрока = ТаблицаПродукция.Добавить();
											//ЗаполнитьЗначенияСвойств(НоваяСтрока,ОбходПоСчету);
											//НоваяСтрока.Количество = ВсегоКоличествоБух;
										}
									}
									/*// по счетам учета
*/
									if(true/*ОтражатьВУправленческомУчете И ВсегоКоличество > 0*/)
									{
										//НоваяСтрока = ТаблицаПродукция.Добавить();
										//ЗаполнитьЗначенияСвойств(НоваяСтрока, ОбходПоЗаказам);
										//НоваяСтрока.Количество = ВсегоКоличество;
										if(true/*ОтражатьВБухгалтерскомУчете*/)
										{
											//НоваяСтрока.СчетЗатрат = СчетЗатрат;
											//НоваяСтрока.СчетЗатратНУ = СчетЗатратНУ;
										}
									}
								}
								//;;
							}
							//;;
						}
						//;;
					}
					//;;
				}
				//;;
			}
			//;;
		}
		// ЗаполнитьПродукциюПоВыпуску()
		// Процедура формирует таблицу остатков наработанной продукции.
		//

		public void ЗаполнитьПродукциюПоВыпускуНаработка(/*ДокОбъект, ТаблицаПродукция*/)
		{
			/*ЗаполнитьПродукциюПоВыпуску(
		ДокОбъект, 
		ТаблицаПродукция,
		Перечисления.ВидыВыпуска.Наработка
	);*/
		}
		// ЗаполнитьПродукциюПоВыпускуНаработка()
		// Процедура формирует таблицу затрат на выпуск.
		//

		public void ЗаполнитьМатериалыПоЗатратамНаВыпуск(/*ДокОбъект, ТаблицаЗатратНаВыпуск*/)
		{
			//ОтражатьВУправленческомУчете = ДокОбъект.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете  = ДокОбъект.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете      = ДокОбъект.ОтражатьВНалоговомУчете;
			//Заказ = ДокОбъект.Заказ;
			//ЕстьЗаказ = ЗначениеЗаполнено(Заказ);
			if(true/*ЕстьЗаказ*/)
			{
				//УсловиеЗаказ = "И ВыпускПродукции.Заказ = &Заказ";
				//УсловиеЗаказБух = "И ВыпускПродукцииБух.Заказ = &Заказ";
				//УсловиеЗаказНал = "И ВыпускПродукцииНал.Заказ = &Заказ";
			}
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ЗатратыНаВыпуск.Продукция			    КАК Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|	ЗатратыНаВыпуск.СерияПродукции 		    КАК СерияПродукции,
	|	ЗатратыНаВыпуск.Спецификация 		 	КАК Спецификация,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.Заказ 				    КАК Заказ,
	|	ЗатратыНаВыпуск.СтатьяЗатрат 			КАК СтатьяЗатрат,
	|	
	|	ЗатратыНаВыпуск.Затрата			        КАК Затрата,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты   КАК ХарактеристикаЗатраты,
	|	ЗатратыНаВыпуск.СерияЗатраты 		    КАК СерияЗатраты,
	|	
	|	ЗатратыНаВыпуск.СчетЗатрат 	        КАК СчетЗатрат,
	|	ЗатратыНаВыпуск.СчетЗатратНУ        КАК СчетЗатратНУ,
	|	
	|	СУММА(ЗатратыНаВыпуск.Количество)    КАК Количество,
	|	СУММА(ЗатратыНаВыпуск.КоличествоБух) КАК КоличествоБух,
	|	СУММА(ЗатратыНаВыпуск.КоличествоНал) КАК КоличествоНал
	|	
	|ИЗ (
	|";*/
			if(true/*ОтражатьВУправленческомУчете*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
	|	ВЫБРАТЬ
	|		ЗатратыНаВыпуск.Продукция			    КАК Продукция,
	|		ЗатратыНаВыпуск.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|		ЗатратыНаВыпуск.СерияПродукции 		    КАК СерияПродукции,
	|		ЗатратыНаВыпуск.Спецификация 		 	КАК Спецификация,
	|		ЗатратыНаВыпуск.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|		ЗатратыНаВыпуск.Заказ 			        КАК Заказ,
	|		ЗатратыНаВыпуск.СтатьяЗатрат 			КАК СтатьяЗатрат,
	|		
	|		ЗатратыНаВыпуск.Затрата			        КАК Затрата,
	|		ЗатратыНаВыпуск.ХарактеристикаЗатраты   КАК ХарактеристикаЗатраты,
	|		ЗатратыНаВыпуск.СерияЗатраты 		    КАК СерияЗатраты,
	|		
	|		0 КАК СчетЗатрат,
	|		0 КАК СчетЗатратНУ,
	|		
	|		ЗатратыНаВыпуск.Количество	КАК Количество,
	|		0 						   	КАК КоличествоБух,
	|		0 						   	КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ЗатратыНаВыпускПродукции КАК ЗатратыНаВыпуск
	|	ГДЕ
	|		ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|		И ЗатратыНаВыпуск.КодОперации В (&КодыОпераций)
	|		И ЗатратыНаВыпуск.Подразделение = &Подразделение
	|
	|	ОБЪЕДИНИТЬ ВСЕ
	|
	|	ВЫБРАТЬ
	|		ЗатратыНаВыпускНаработка.Продукция			    	КАК Продукция,
	|		ЗатратыНаВыпускНаработка.ХарактеристикаПродукции 	КАК ХарактеристикаПродукции,
	|		РегВыпуск.СерияПродукции 		    				КАК СерияПродукции,
	|		РегВыпуск.Спецификация 		 						КАК Спецификация,
	|		ЗатратыНаВыпускНаработка.НоменклатурнаяГруппа    	КАК НоменклатурнаяГруппа,
	|		ЗатратыНаВыпускНаработка.Заказ 			        	КАК Заказ,
	|		ЗатратыНаВыпускНаработка.СтатьяЗатрат 				КАК СтатьяЗатрат,
	|		
	|		ЗатратыНаВыпускНаработка.Затрата			        КАК Затрата,
	|		ЗатратыНаВыпускНаработка.ХарактеристикаЗатраты   	КАК ХарактеристикаЗатраты,
	|		ЗатратыНаВыпускНаработка.СерияЗатраты 		    	КАК СерияЗатраты,
	|		
	|		0 КАК СчетЗатрат,
	|		0 КАК СчетЗатратНУ,
	|		
	|		ЗатратыНаВыпускНаработка.КоличествоОстаток	КАК Количество,
	|		0 						   					КАК КоличествоБух,
	|		0 						   					КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ЗатратыНаВыпускПродукцииНаработка.Остатки(&КонДата, Подразделение = &Подразделение) КАК ЗатратыНаВыпускНаработка
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			РегВыпуск.Продукция               КАК Продукция,
	|			РегВыпуск.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|			РегВыпуск.СерияПродукции          КАК СерияПродукции,
	|			РегВыпуск.Спецификация            КАК Спецификация,
	|			РегВыпуск.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|			РегВыпуск.Заказ                   КАК Заказ,
	|			СУММА(РегВыпуск.КоличествоДоделка)КАК Количество
	|		ИЗ
	|			РегистрНакопления.ВыпускПродукции КАК РегВыпуск
	|		ГДЕ
	|			РегВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|			И РегВыпуск.Подразделение = &Подразделение
	|			И РегВыпуск.КоличествоДоделка <> 0
	|		СГРУППИРОВАТЬ ПО
	|			РегВыпуск.НоменклатурнаяГруппа,
	|			РегВыпуск.Продукция,
	|			РегВыпуск.ХарактеристикаПродукции,
	|			РегВыпуск.СерияПродукции,
	|			РегВыпуск.Спецификация,
	|			РегВыпуск.Заказ
	|		) КАК РегВыпуск
	|	ПО  
	|		ЗатратыНаВыпускНаработка.НоменклатурнаяГруппа      = РегВыпуск.НоменклатурнаяГруппа
	|		И ЗатратыНаВыпускНаработка.Продукция               = РегВыпуск.Продукция
	|		И ЗатратыНаВыпускНаработка.ХарактеристикаПродукции = РегВыпуск.ХарактеристикаПродукции
	|		И ЗатратыНаВыпускНаработка.Заказ                   = РегВыпуск.Заказ
	|";*/
			}
			if(true/*ОтражатьВУправленческомУчете И ОтражатьВБухгалтерскомУчете*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
	|																					   
	|ОБЪЕДИНИТЬ																					   
	|";*/
			}
			if(true/*ОтражатьВБухгалтерскомУчете*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
	|	ВЫБРАТЬ
	|		ЗатратыНаВыпускБух.Продукция			   КАК Продукция,
	|		ЗатратыНаВыпускБух.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|		ЗатратыНаВыпускБух.СерияПродукции 		   КАК СерияПродукции,
	|		ЗатратыНаВыпускБух.Спецификация 		   КАК Спецификация,
	|		ЗатратыНаВыпускБух.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|		ЗатратыНаВыпускБух.Заказ 			       КАК Заказ,
	|		ЗатратыНаВыпускБух.СтатьяЗатрат 		   КАК СтатьяЗатрат,
	|		
	|		ЗатратыНаВыпускБух.Затрата			       КАК Затрата,
	|		ЗатратыНаВыпускБух.ХарактеристикаЗатраты   КАК ХарактеристикаЗатраты,
	|		ЗатратыНаВыпускБух.СерияЗатраты 		   КАК СерияЗатраты,
	|		
	|		ЗатратыНаВыпускБух.СчетУчета КАК СчетЗатрат,
	|		0        				     КАК СчетЗатратНУ,
	|		
	|		0						      КАК Количество,
	|		ЗатратыНаВыпускБух.Количество КАК КоличествоБух,
	|		0 						      КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ЗатратыНаВыпускПродукцииБухгалтерскийУчет КАК ЗатратыНаВыпускБух
	|	ГДЕ
	|		ЗатратыНаВыпускБух.Период МЕЖДУ &НачДата И &КонДата
	|		И ЗатратыНаВыпускБух.КодОперации В (&КодыОпераций)
	|		И ЗатратыНаВыпускБух.Подразделение = &ПодразделениеОрганизации
	|
	|	ОБЪЕДИНИТЬ ВСЕ
	|
	|	ВЫБРАТЬ
	|		ЗатратыНаВыпускНаработка.Продукция			    	КАК Продукция,
	|		ЗатратыНаВыпускНаработка.ХарактеристикаПродукции 	КАК ХарактеристикаПродукции,
	|		РегВыпуск.СерияПродукции 		    				КАК СерияПродукции,
	|		РегВыпуск.Спецификация 		 						КАК Спецификация,
	|		ЗатратыНаВыпускНаработка.НоменклатурнаяГруппа    	КАК НоменклатурнаяГруппа,
	|		ЗатратыНаВыпускНаработка.Заказ 			        	КАК Заказ,
	|		ЗатратыНаВыпускНаработка.СтатьяЗатрат 				КАК СтатьяЗатрат,
	|		
	|		ЗатратыНаВыпускНаработка.Затрата			        КАК Затрата,
	|		ЗатратыНаВыпускНаработка.ХарактеристикаЗатраты   	КАК ХарактеристикаЗатраты,
	|		ЗатратыНаВыпускНаработка.СерияЗатраты 		    	КАК СерияЗатраты,
	|		
	|		ЗатратыНаВыпускНаработка.СчетУчета КАК СчетЗатрат,
	|		0 КАК СчетЗатратНУ,
	|		
	|		0											КАК Количество,
	|		ЗатратыНаВыпускНаработка.КоличествоОстаток	КАК КоличествоБух,
	|		0 						   					КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ЗатратыНаВыпускПродукцииНаработкаБухгалтерскийУчет.Остатки(&КонДата, Подразделение = &ПодразделениеОрганизации) КАК ЗатратыНаВыпускНаработка
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			РегВыпуск.Продукция               КАК Продукция,
	|			РегВыпуск.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|			РегВыпуск.СерияПродукции          КАК СерияПродукции,
	|			РегВыпуск.Спецификация            КАК Спецификация,
	|			РегВыпуск.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|			РегВыпуск.Заказ                   КАК Заказ,
	|			СУММА(РегВыпуск.КоличествоДоделка)КАК Количество
	|		ИЗ
	|			РегистрНакопления.ВыпускПродукцииБухгалтерскийУчет КАК РегВыпуск
	|		ГДЕ
	|			РегВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|			И РегВыпуск.Подразделение = &ПодразделениеОрганизации
	|			И РегВыпуск.КоличествоДоделка <> 0
	|		СГРУППИРОВАТЬ ПО
	|			РегВыпуск.НоменклатурнаяГруппа,
	|			РегВыпуск.Продукция,
	|			РегВыпуск.ХарактеристикаПродукции,
	|			РегВыпуск.СерияПродукции,
	|			РегВыпуск.Спецификация,
	|			РегВыпуск.Заказ
	|		) КАК РегВыпуск
	|	ПО  
	|		ЗатратыНаВыпускНаработка.НоменклатурнаяГруппа      = РегВыпуск.НоменклатурнаяГруппа
	|		И ЗатратыНаВыпускНаработка.Продукция               = РегВыпуск.Продукция
	|		И ЗатратыНаВыпускНаработка.ХарактеристикаПродукции = РегВыпуск.ХарактеристикаПродукции
	|		И ЗатратыНаВыпускНаработка.Заказ                   = РегВыпуск.Заказ
	|";*/
			}
			if(true/*ОтражатьВБухгалтерскомУчете И ОтражатьВНалоговомУчете*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
	|ОБЪЕДИНИТЬ																					   
	|";*/
			}
			if(true/*ОтражатьВНалоговомУчете*/)
			{
				/*ТекстЗапроса = ТекстЗапроса + "
	|	ВЫБРАТЬ
	|		ЗатратыНаВыпускНал.Продукция			   КАК Продукция,
	|		ЗатратыНаВыпускНал.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
	|		ЗатратыНаВыпускНал.СерияПродукции 		   КАК СерияПродукции,
	|		ЗатратыНаВыпускНал.Спецификация 		   КАК Спецификация,
	|		ЗатратыНаВыпускНал.НоменклатурнаяГруппа    КАК НоменклатурнаяГруппа,
	|		ЗатратыНаВыпускНал.Заказ 		   		   КАК Заказ,
	|		ЗатратыНаВыпускНал.СтатьяЗатрат 		   КАК СтатьяЗатрат,
	|		
	|		ЗатратыНаВыпускНал.Затрата			       КАК Затрата,
	|		ЗатратыНаВыпускНал.ХарактеристикаЗатраты   КАК ХарактеристикаЗатраты,
	|		ЗатратыНаВыпускНал.СерияЗатраты 		   КАК СерияЗатраты,
	|		
	|		Соответствие.СчетБУ			    	   КАК СчетЗатрат,
	|		ЗатратыНаВыпускНал.СчетУчета           КАК СчетЗатратНУ,
	|		
	|		0						      КАК Количество,
	|		0						      КАК КоличествоБух,
	|		ЗатратыНаВыпускНал.Количество КАК КоличествоНал
	|	ИЗ
	|		РегистрНакопления.ЗатратыНаВыпускПродукцииНалоговыйУчет КАК ЗатратыНаВыпускНал
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			СоответствиеСчетовБУиНУ.СчетБУ КАК СчетБУ,
	|			СоответствиеСчетовБУиНУ.СчетНУ КАК СчетНУ
	|		ИЗ
	|			РегистрСведений.СоответствиеСчетовБУиНУ КАК СоответствиеСчетовБУиНУ
	|		) КАК Соответствие
	|	ПО
	|		ЗатратыНаВыпускНал.СчетУчета = Соответствие.СчетНУ
	|		
	|	ГДЕ
	|		ЗатратыНаВыпускНал.Период МЕЖДУ &НачДата И &КонДата
	|		И ЗатратыНаВыпускНал.КодОперации В (&КодыОпераций)
	|		И ЗатратыНаВыпускНал.Подразделение = &ПодразделениеОрганизации
	|";*/
			}
			/*ТекстЗапроса = ТекстЗапроса + "
	|	) КАК ЗатратыНаВыпуск
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗатратыНаВыпуск.Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|	ЗатратыНаВыпуск.СерияПродукции,
	|	ЗатратыНаВыпуск.Спецификация,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.Заказ,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|	
	|	ЗатратыНаВыпуск.Затрата,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|	ЗатратыНаВыпуск.СерияЗатраты,
	|	
	|	ЗатратыНаВыпуск.СчетЗатрат,
	|	ЗатратыНаВыпуск.СчетЗатратНУ
	|
	|УПОРЯДОЧИТЬ ПО
	|	ЗатратыНаВыпуск.Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|	ЗатратыНаВыпуск.СерияПродукции,
	|	ЗатратыНаВыпуск.Спецификация,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.Заказ,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|	
	|	ЗатратыНаВыпуск.Затрата,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|	ЗатратыНаВыпуск.СерияЗатраты,
	|	
	|	ЗатратыНаВыпуск.СчетЗатрат,
	|	ЗатратыНаВыпуск.СчетЗатратНУ
	|		
	|ИТОГИ СУММА(Количество), СУММА(КоличествоБух), СУММА(КоличествоНал)  ПО
	|	ЗатратыНаВыпуск.Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|	ЗатратыНаВыпуск.СерияПродукции,
	|	ЗатратыНаВыпуск.Спецификация,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.Заказ,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|	ЗатратыНаВыпуск.Затрата,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|	ЗатратыНаВыпуск.СерияЗатраты,
	|	ЗатратыНаВыпуск.СчетЗатрат
    |";*/
			//Запрос = Новый Запрос;
			//Дата = УправлениеЗатратами.ПолучитьДатуДляЗапроса(ДокОбъект);
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("НачДата",                  	НачалоМесяца(ДокОбъект.Дата));
			//Запрос.УстановитьПараметр("КонДата",                  	Дата);
			//Запрос.УстановитьПараметр("Подразделение",            	ДокОбъект.Подразделение);
			//Запрос.УстановитьПараметр("ПодразделениеОрганизации", 	ДокОбъект.ПодразделениеОрганизации);
			//Запрос.УстановитьПараметр("Заказ",      			   	?(НЕ ЗначениеЗаполнено(Заказ), Неопределено, Заказ));
			//МассивКодовОпераций= Новый Массив;
			//МассивКодовОпераций.Добавить( Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ПрямыеЗатраты);
			//Запрос.УстановитьПараметр( "КодыОпераций", МассивКодовОпераций);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			//ОбходПоПродукции = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбходПоПродукции.Следующий()*/)
			{
				//ОбходПоХарактеристикам = ОбходПоПродукции.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ОбходПоХарактеристикам.Следующий()*/)
				{
					//ОбходПоСериям = ОбходПоХарактеристикам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
					while(true/*ОбходПоСериям.Следующий()*/)
					{
						//ОбходПоСпецификациям = ОбходПоСериям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
						while(true/*ОбходПоСпецификациям.Следующий()*/)
						{
							//ОбходПоНомГруппам = ОбходПоСпецификациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							while(true/*ОбходПоНомГруппам.Следующий()*/)
							{
								//ОбходПоЗаказам = ОбходПоНомГруппам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								while(true/*ОбходПоЗаказам.Следующий()*/)
								{
									//ОбходПоСтатьям = ОбходПоЗаказам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
									while(true/*ОбходПоСтатьям.Следующий()*/)
									{
										//ОбходПоЗатратам = ОбходПоСтатьям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
										while(true/*ОбходПоЗатратам.Следующий()*/)
										{
											//ОбходПоХарактеристикамЗатрат = ОбходПоЗатратам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
											while(true/*ОбходПоХарактеристикамЗатрат.Следующий()*/)
											{
												//ОбходПоСериямЗатрат = ОбходПоХарактеристикамЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
												while(true/*ОбходПоСериямЗатрат.Следующий()*/)
												{
													//ВсегоКоличество = ОбходПоСтатьям.Количество;
													//ОбходПоСчету = ОбходПоСтатьям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
													while(true/*ОбходПоСчету.Следующий()*/)
													{
														//ВсегоКоличествоБух = ОбходПоСчету.КоличествоБух;
														//Обход = ОбходПоСчету.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
														while(true/*Обход.Следующий()*/)
														{
															if(true/*ОтражатьВНалоговомУчете*/)
															{
																if(true/*НЕ ЗначениеЗаполнено(Обход.СчетЗатратНУ)*/)
																{
																}
																//ТекКоличество = Обход.КоличествоНал;
															}
															if(true/*ТекКоличество = 0*/)
															{
															}
															//ВсегоКоличество = ВсегоКоличество - ТекКоличество;
															//ВсегоКоличествоБух = ВсегоКоличествоБух - ТекКоличество;
															//НоваяСтрока = ТаблицаЗатратНаВыпуск.Добавить();
															//НоваяСтрока.Продукция               = Обход.Продукция;
															//НоваяСтрока.ХарактеристикаПродукции = Обход.ХарактеристикаПродукции;
															//НоваяСтрока.СерияПродукции          = Обход.СерияПродукции;
															//НоваяСтрока.Номенклатура               = Обход.Затрата;
															//НоваяСтрока.ХарактеристикаНоменклатуры = Обход.ХарактеристикаЗатраты;
															//НоваяСтрока.СерияНоменклатуры          = Обход.СерияЗатраты;
															//НоваяСтрока.НоменклатурнаяГруппа 	= Обход.НоменклатурнаяГруппа;
															//НоваяСтрока.Заказ                	= Обход.Заказ;
															//НоваяСтрока.Спецификация 			= Обход.Спецификация;
															//НоваяСтрока.СтатьяЗатрат 			= Обход.СтатьяЗатрат;
															//НоваяСтрока.Количество 				= ТекКоличество;
															if(true/*ОтражатьВБухгалтерскомУчете*/)
															{
																//НоваяСтрока.СчетЗатрат = Обход.СчетЗатрат;
															}
															if(true/*ОтражатьВНалоговомУчете*/)
															{
																//НоваяСтрока.СчетЗатратНУ = Обход.СчетЗатратНУ;
															}
														}
														/*// по детальным записям
*/
														if(true/*ОтражатьВБухгалтерскомУчете И ВсегоКоличествоБух > 0*/)
														{
															//ВсегоКоличество = ВсегоКоличество - ВсегоКоличествоБух;
															//НоваяСтрока = ТаблицаЗатратНаВыпуск.Добавить();
															//НоваяСтрока.Продукция               = ОбходПоСчету.Продукция;
															//НоваяСтрока.ХарактеристикаПродукции = ОбходПоСчету.ХарактеристикаПродукции;
															//НоваяСтрока.СерияПродукции          = ОбходПоСчету.СерияПродукции;
															//НоваяСтрока.Номенклатура               = ОбходПоСчету.Затрата;
															//НоваяСтрока.ХарактеристикаНоменклатуры = ОбходПоСчету.ХарактеристикаЗатраты;
															//НоваяСтрока.СерияНоменклатуры          = ОбходПоСчету.СерияЗатраты;
															//НоваяСтрока.НоменклатурнаяГруппа 	= ОбходПоСчету.НоменклатурнаяГруппа;
															//НоваяСтрока.Заказ                	= ОбходПоСчету.Заказ;
															//НоваяСтрока.Спецификация 			= ОбходПоСчету.Спецификация;
															//НоваяСтрока.СтатьяЗатрат 			= ОбходПоСчету.СтатьяЗатрат;
															//НоваяСтрока.Количество 				= ВсегоКоличествоБух;
														}
													}
													/*// по счетам учета
*/
													if(true/*ОтражатьВУправленческомУчете И ВсегоКоличество > 0*/)
													{
														//НоваяСтрока = ТаблицаЗатратНаВыпуск.Добавить();
														//НоваяСтрока.Продукция               = ОбходПоСтатьям.Продукция;
														//НоваяСтрока.ХарактеристикаПродукции = ОбходПоСтатьям.ХарактеристикаПродукции;
														//НоваяСтрока.СерияПродукции          = ОбходПоСтатьям.СерияПродукции;
														//НоваяСтрока.Номенклатура               = ОбходПоСтатьям.Затрата;
														//НоваяСтрока.ХарактеристикаНоменклатуры = ОбходПоСтатьям.ХарактеристикаЗатраты;
														//НоваяСтрока.СерияНоменклатуры          = ОбходПоСтатьям.СерияЗатраты;
														//НоваяСтрока.НоменклатурнаяГруппа 	= ОбходПоСтатьям.НоменклатурнаяГруппа;
														//НоваяСтрока.Заказ                	= ОбходПоСтатьям.Заказ;
														//НоваяСтрока.Спецификация 			= ОбходПоСтатьям.Спецификация;
														//НоваяСтрока.СтатьяЗатрат 			= ОбходПоСтатьям.СтатьяЗатрат;
														//НоваяСтрока.Количество 				= ВсегоКоличество;
													}
												}
												/*// по сериям затрат
*/
											}
											/*// по характеристикам затрат
*/
										}
										/*// по затратам
*/
									}
									/*// по статьям затрат
*/
								}
								//;;
							}
							//;;
						}
						//;;
					}
					//;;
				}
				//;;
			}
			//;;
		}
		// ЗаполнитьМатериалыПоЗатратамНаВыпуск()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ЗАПОЛНЕНИЯ ТАБЛИЧНЫХ ЧАСТЕЙ ПО СПЕЦИФИКАЦИЯМ
		// Процедура заполняет табличную часть "Материалы" по спецификациям, указанным в табличной части "Продукция".
		//

		public void ЗаполнитьМатериалыПоСпецификациям(/*ТабличнаяЧастьМатериалы, ТаблицаПродукция, СтруктураДопКолонок, Отбор, ДатаСпецификации, КоличествоУровнейРазузлования = 1, ПараметрыВыпускаПродукции = Неопределено*/)
		{
			//ТабличнаяЧастьПродукция = Новый ТаблицаЗначений;
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Номенклатура");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ЕдиницаИзмерения");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Коэффициент", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 3)));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Спецификация");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("КлючСвязи", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 0)));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ДопКолонки = "";
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПродукция, ТабличнаяЧастьПродукция);
			//ТабличнаяЧастьПродукция.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Спецификация, Коэффициент, КлючСвязи" + ДопКолонки, "Количество");
			//Параметры = Новый Структура("ПараметрыВыпуска, КоличествоУровнейРазузлования, ДатаСпецификации, Отбор, РазмещатьВСопутствующихИзделиях");
			//Параметры.Отбор = Отбор;
			//Параметры.РазмещатьВСопутствующихИзделиях = Истина;
			//РезультатРазузлования = Новый Структура("ИсходныеКомплектующие");
			//ИндексПоследнейСтроки = 0;
			if(true/*РезультатРазузлования.ИсходныеКомплектующие <> Неопределено*/)
			{
				//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ИсходныеКомплектующие, ТабличнаяЧастьМатериалы);
			}
		}
		// ЗаполнитьМатериалыПоСпецификациям()
		// Процедура заполняет табличную часть "Материалы" по спецификациям, указанным в табличной части "Продукция".
		//

		public void ЗаполнитьВозвратныеОтходыПоСпецификациям(/*ТабличнаяЧастьВозвратныеОтходы, ТаблицаПродукция, СтруктураДопКолонок, Отбор, ДатаСпецификации, КоличествоУровнейРазузлования = 1, ПараметрыВыпускаПродукции = Неопределено*/)
		{
			//ТабличнаяЧастьПродукция = Новый ТаблицаЗначений;
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Номенклатура");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ЕдиницаИзмерения");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Коэффициент",	Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 3)));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Спецификация");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("КлючСвязи", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 0)));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//ДопКолонки = "";
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПродукция, ТабличнаяЧастьПродукция);
			//ТабличнаяЧастьПродукция.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Спецификация, Коэффициент, КлючСвязи" + ДопКолонки, "Количество");
			//Параметры = Новый Структура("ПараметрыВыпуска, КоличествоУровнейРазузлования, ДатаСпецификации, Отбор, РазмещатьВСопутствующихИзделиях");
			//Параметры.Отбор = Отбор;
			//Параметры.РазмещатьВСопутствующихИзделиях = Истина;
			//РезультатРазузлования = Новый Структура("ВозвратныеОтходы");
			//ИндексПоследнейСтроки = 0;
			if(true/*РезультатРазузлования.ВозвратныеОтходы <> Неопределено*/)
			{
				//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ВозвратныеОтходы, ТабличнаяЧастьВозвратныеОтходы);
			}
		}
		// ЗаполнитьВозвратныеОтходыПоСпецификациям()
		// Функция получает таблицу материлов по спецификации, указанной при подборе.
		//

		public object ПолучитьМатериалыПоСпецификации(/*Спецификация, Количество, Отбор, ДатаСпецификации, ИспользоватьТолькоСборочныеСпецификации, КоличествоУровнейРазузлования = 1*/)
		{
			//Параметры = Новый Структура("ПараметрыВыпуска, КоличествоУровнейРазузлования, ДатаСпецификации, Отбор");
			//Параметры.Отбор = Отбор;
			if(true/*НЕ ЗначениеЗаполнено(Спецификация) ИЛИ Количество = 0*/)
			{
			}
			//РезультатРазузлования = Новый Структура("ИсходныеКомплектующие");
			//СтруктураИсточник = Новый Структура("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, Количество, Спецификация");
			if(true/*Не ИспользоватьВидСпецификации(ИспользоватьТолькоСборочныеСпецификации)
	 ИЛИ Спецификация.ВидСпецификации = Перечисления.ВидыСпецификаций.Сборочная*/)
			{
				if(true/*Спецификация.ВыходныеИзделия.Количество() > 0*/)
				{
					//СтруктураИсточник.Вставить("Номенклатура", 					Спецификация.ВыходныеИзделия[0].Номенклатура);
					//СтруктураИсточник.Вставить("ХарактеристикаНоменклатуры", 	Спецификация.ВыходныеИзделия[0].ХарактеристикаНоменклатуры);
					//СтруктураИсточник.Вставить("ЕдиницаИзмерения", 				Спецификация.ВыходныеИзделия[0].ЕдиницаИзмерения);
					//СтруктураИсточник.Вставить("Коэффициент", 					Спецификация.ВыходныеИзделия[0].ЕдиницаИзмерения.Коэффициент);
				}
			}
			//СтруктураИсточник.Вставить("Количество",   Количество);
			//СтруктураИсточник.Вставить("Спецификация", Спецификация);
			//РезультатРазузлования = Новый Структура;
			//РезультатРазузлования.Вставить("ИсходныеКомплектующие");
			//Параметры = Новый Структура;
			//Параметры.Вставить("ДатаСпецификации", 				ДатаСпецификации);
			//Параметры.Вставить("КоличествоУровнейРазузлования", КоличествоУровнейРазузлования);
			//Параметры.Вставить("Отбор", 						Отбор);
			//МассивОшибок = РазузлованиеНоменклатуры.РазузловатьНоменклатуру(СтруктураИсточник, РезультатРазузлования, Параметры);
			if(true/*МассивОшибок.Количество() > 0*/)
			{
			}
			if(true/*РезультатРазузлования.ИсходныеКомплектующие = Неопределено*/)
			{
			}
			//ИсходныеКомплектующие = РезультатРазузлования.ИсходныеКомплектующие;
			return null;
		}
		// ПолучитьМатериалыПоСпецификации()
		// Процедура заполнения документов выпуска по спецификации
		//

		public void ЗаполнитьПоСпецификации(/*ДокументОбъект, ПараметрыСвязиСтрокТЧ, Спецификация = Неопределено, Количество = 1*/)
		{
			//МетаданныеДокумента = ДокументОбъект.Метаданные();
			//ИмяДокумента = МетаданныеДокумента.Имя;
			//мВалютаУправленческогоУчета = глЗначениеПеременной("ВалютаУправленческогоУчета");
			//мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета");
			//СтруктураИсточник = Новый Структура("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, Количество, Спецификация");
			//мИспользоватьТолькоСборочныеСпецификации = глЗначениеПеременной("ИспользоватьТолькоСборочныеСпецификации");
			if(true/*Не ИспользоватьВидСпецификации(мИспользоватьТолькоСборочныеСпецификации)
	 ИЛИ Спецификация.ВидСпецификации = Перечисления.ВидыСпецификаций.Сборочная*/)
			{
				if(true/*Спецификация.ВыходныеИзделия.Количество() > 0*/)
				{
					//СтруктураИсточник.Вставить("Номенклатура", 					Спецификация.ВыходныеИзделия[0].Номенклатура);
					//СтруктураИсточник.Вставить("ХарактеристикаНоменклатуры", 	Спецификация.ВыходныеИзделия[0].ХарактеристикаНоменклатуры);
					//СтруктураИсточник.Вставить("ЕдиницаИзмерения", 				Спецификация.ВыходныеИзделия[0].ЕдиницаИзмерения);
					//СтруктураИсточник.Вставить("Коэффициент", 					Спецификация.ВыходныеИзделия[0].ЕдиницаИзмерения.Коэффициент);
				}
			}
			//СтруктураИсточник.Вставить("Количество",   Количество);
			//СтруктураИсточник.Вставить("Спецификация", Спецификация);
			//РезультатРазузлования = Новый Структура;
			//РезультатРазузлования.Вставить("ИсходныеКомплектующие");
			//РезультатРазузлования.Вставить("ВыходныеИзделия");
			//РезультатРазузлования.Вставить("ВозвратныеОтходы");
			//Отбор = Новый Структура("СписаниеКомплектующей", Перечисления.ВариантыСписанияКомплектующих.Всегда);
			//Параметры = Новый Структура;
			//Параметры.Вставить("ДатаСпецификации", ДокументОбъект.Дата);
			//Параметры.Вставить("КоличествоУровнейРазузлования", 1);
			//Параметры.Вставить("Отбор", Отбор);
			//РазузлованиеНоменклатуры.РазузловатьНоменклатуру(СтруктураИсточник, РезультатРазузлования, Параметры);
			//ИсходныеКомплектующие = РезультатРазузлования.ИсходныеКомплектующие;
			//ВыходныеИзделия       = РезультатРазузлования.ВыходныеИзделия;
			//ТабОтходы             = РезультатРазузлования.ВозвратныеОтходы;
			if(true/*ДокументОбъект.ИспользоватьМатериалы*/)
			{
			}
			if(true/*МетаданныеДокумента.Реквизиты.Найти("ИспользоватьВозвратныеОтходы") <> Неопределено и ДокументОбъект.ИспользоватьВозвратныеОтходы*/)
			{
				//ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
				//ЕстьРеквизитПроцентСкидкиНаценки = Ложь;
				//ПересчитыватьСкидку = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПересчитыватьСкидку");
				//ЕстьРеквизитПроцентАвтоматическихСкидок = Ложь;
			}
			if(true/*МетаданныеДокумента.Реквизиты.Найти("ИспользоватьТехнологическиеОперации") <> Неопределено и ДокументОбъект.ИспользоватьТехнологическиеОперации*/)
			{
				//ТабТехОпер = ДокументОбъект.ПолучитьТехОперации(Спецификация);
			}
			if(true/*Не ТабТехОпер = Неопределено*/)
			{
				//КурсУпр = МодульВалютногоУчета.ПолучитьКурсВалюты( мВалютаУправленческогоУчета,     ДокументОбъект.Дата);
				//КурсБух = МодульВалютногоУчета.ПолучитьКурсВалюты( мВалютаРегламентированногоУчета, ДокументОбъект.Дата);
			}
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ЗАПОЛНЕНИЯ ТАБЛИЧНЫХ ЧАСТЕЙ РАСПРЕДЕНИЯ
		// Процедура заполняет табличную часть "Распределение материалов" по данным табличных частей "Материалы" и "Продукция".
		//

		public void ЗаполнитьРаспределениеМатериаловНаПродукцию(/*СтруктураШапкиДокумента, Материалы, ТаблицаПродукция, РаспределениеМатериалов, СтруктураДопКолонок, Отбор, ПараметрыВыпускаПродукции = Неопределено, ЭтоВозвратныеОтходы = Ложь*/)
		{
			//ИспользуютсяХарактеристикиНоменклатуры = Константы.ИспользоватьХарактеристикиНоменклатуры.Получить();
			//ОтражатьВБухгалтерскомУчете = СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете = СтруктураШапкиДокумента.ОтражатьВНалоговомУчете;
			//ДатаСпецификации = СтруктураШапкиДокумента.Дата;
			if(true/*НЕ СтруктураШапкиДокумента.Свойство("ИспользоватьЗаказы", ИспользоватьЗаказы)*/)
			{
				//ИспользоватьЗаказы = Истина;
			}
			if(true/*НЕ СтруктураШапкиДокумента.Свойство("ИспользоватьНаработку", ИспользоватьНаработку)*/)
			{
				//ИспользоватьНаработку = Истина;
			}
			if(true/*НЕ СтруктураШапкиДокумента.Свойство("РаспределятьПропорциональноКоличеству", РаспределятьПропорциональноКоличеству)*/)
			{
				//РаспределятьПропорциональноКоличеству = Ложь;
			}
			if(true/*НЕ СтруктураШапкиДокумента.Свойство("ИспользоватьАналитикуНЗП", ИспользоватьАналитикуНЗП)*/)
			{
				//ИспользоватьАналитикуНЗП = Ложь;
			}
			/*ИспользоватьРасширеннуюАналитику = глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат") 
		И (глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат") <= СтруктураШапкиДокумента.Дата);*/
			//ТабличнаяЧастьПродукция = Новый ТаблицаЗначений;
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Номенклатура");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("СерияНоменклатуры");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("ЕдиницаИзмерения");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Коэффициент",	ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(10, 3));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Спецификация");
			//ТабличнаяЧастьПродукция.Колонки.Добавить("Количество", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 3));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("КоличествоДоделка", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 3));
			//ТабличнаяЧастьПродукция.Колонки.Добавить("КлючСвязи", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 0));
			//СтруктураДопКолонок.Вставить("ЭтоДоделка");
			//ДопКолонки = "";
			//ТаблицаИсточник = ТабличнаяЧастьПродукция.СкопироватьКолонки();
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПродукция, ТабличнаяЧастьПродукция);
			//ТабличнаяЧастьПродукция.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, СерияНоменклатуры, ЕдиницаИзмерения, Спецификация, Коэффициент, КлючСвязи" + ДопКолонки, "Количество, КоличествоДоделка");
			//ТаблицаМатериалыПродукция = Новый ТаблицаЗначений;
			//ТаблицаМатериалыПродукция.Колонки.Добавить("Номенклатура");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("ЕдиницаИзмерения");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("Количество");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("Продукция");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("ХарактеристикаПродукции");
			//ТаблицаМатериалыПродукция.Колонки.Добавить("Спецификация");
			//МассивТиповЗаказа = Новый Массив;
			//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказПокупателя"));
			//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказНаПроизводство"));
			//ТаблицаПотребностей = Новый ТаблицаЗначений;
			//ТаблицаПотребностей.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
			//ТаблицаПотребностей.Колонки.Добавить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			//ТаблицаПотребностей.Колонки.Добавить("СерияНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
			//ТаблицаПотребностей.Колонки.Добавить("Спецификация", Новый ОписаниеТипов("СправочникСсылка.СпецификацииНоменклатуры"));
			//ТаблицаПотребностей.Колонки.Добавить("НоменклатурнаяГруппа", Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
			//ТаблицаПотребностей.Колонки.Добавить("Заказ", Новый ОписаниеТипов(МассивТиповЗаказа));
			//ТаблицаПотребностей.Колонки.Добавить("ЗаказВыпуска", Новый ОписаниеТипов(МассивТиповЗаказа));
			//ТаблицаПотребностей.Колонки.Добавить("Материал", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
			//ТаблицаПотребностей.Колонки.Добавить("ХарактеристикаМатериала", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			//ТаблицаПотребностей.Колонки.Добавить("СтатьяЗатрат", Новый ОписаниеТипов("СправочникСсылка.СтатьиЗатрат"));
			//ТаблицаПотребностей.Колонки.Добавить("ВидВыпуска", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыВыпуска"));
			//ТаблицаПотребностей.Колонки.Добавить("СчетЗатрат", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			//ТаблицаПотребностей.Колонки.Добавить("СчетЗатратНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			//ТаблицаПотребностей.Колонки.Добавить("Количество", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 3));
			//ТаблицаПотребностей.Колонки.Добавить("КоличествоМатериала", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 3));
			//ТаблицаПотребностей.Колонки.Добавить("ДоляСтоимости", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
			if(true/*ЭтоВозвратныеОтходы*/)
			{
				//РезультатРазузлования = Новый Структура("ВозвратныеОтходы");
			}
			//Параметры = Новый Массив;
			//МассивОшибок = РазузлованиеНоменклатуры.ПолучитьПотребность(ТаблицаИсточник, РезультатРазузлования, Параметры);
			if(true/*МассивОшибок.Количество() > 0*/)
			{
			}
			//Потребности = ?(ЭтоВозвратныеОтходы, РезультатРазузлования.ВозвратныеОтходы, РезультатРазузлования.Потребности);
			if(true/*Потребности = Неопределено*/)
			{
			}
			if(true/*НЕ ЭтоВозвратныеОтходы*/)
			{
				/*// Добавим возможные аналоги материалов.
*/
			}
			//ТаблицаМатериалы = Материалы.Выгрузить();
			//ТаблицаМатериалыКонтроль = ТаблицаМатериалы.Скопировать();
			//Колонки = ТаблицаМатериалы.Колонки;
			//ЕстьНоменклатурнаяГруппа = Истина;
			if(true/*Колонки.Найти("НоменклатурнаяГруппа") = Неопределено*/)
			{
				//Колонки.Добавить("НоменклатурнаяГруппа", Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
				//ЕстьНоменклатурнаяГруппа = Ложь;
			}
			//ЕстьПодразделениеНЗП = Истина;
			if(true/*Колонки.Найти("ПодразделениеНЗП") = Неопределено*/)
			{
				//ЕстьПодразделениеНЗП = Ложь;
			}
			//ЕстьВидВыпуска = Истина;
			if(true/*Колонки.Найти("ВидВыпуска") = Неопределено*/)
			{
				//Колонки.Добавить("ВидВыпуска", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыВыпуска"));
				//ЕстьВидВыпуска = Ложь;
			}
			if(true/*Колонки.Найти("Спецификация") = Неопределено*/)
			{
				//Колонки.Добавить("Спецификация", Новый ОписаниеТипов("СправочникСсылка.СпецификацииНоменклатуры"));
			}
			if(true/*Колонки.Найти("Заказ") = Неопределено*/)
			{
				//Колонки.Добавить("Заказ", Новый ОписаниеТипов(МассивТиповЗаказа));
			}
			if(true/*Колонки.Найти("ЗаказВыпуска") = Неопределено*/)
			{
				//Колонки.Добавить("ЗаказВыпуска", Новый ОписаниеТипов("ДокументСсылка.ЗаказНаПроизводство"));
			}
			if(true/*Колонки.Найти("СчетЗатрат") = Неопределено*/)
			{
				//Колонки.Добавить("СчетЗатрат", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			}
			if(true/*Колонки.Найти("СчетЗатратНУ") = Неопределено*/)
			{
				//Колонки.Добавить("СчетЗатратНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			}
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(Потребности, ТаблицаПотребностей);
			/*ТаблицаПотребностей.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, СерияНоменклатуры, Спецификация,
		|Материал, ХарактеристикаМатериала, СтатьяЗатрат, ВидВыпуска, Заказ, ЗаказВыпуска" + ДопКолонки, "Количество, КоличествоМатериала");*/
			//Колонки = ТаблицаПотребностей.Колонки;
			//Колонки.Номенклатура.Имя = "Продукция";
			//Колонки.ХарактеристикаНоменклатуры.Имя = "ХарактеристикаПродукции";
			//Колонки.СерияНоменклатуры.Имя = "СерияПродукции";
			//ЕстьДоляСтоимости = (Колонки.Найти("ДоляСтоимости") <> Неопределено);
			/*// Определим наличие полных спецификаций.
*/
			//ПолныеСпецификации = Новый Соответствие;
			if(true/*ЕстьДоляСтоимости*/)
			{
				//МассивСпецификаций = ТабличнаяЧастьПродукция.ВыгрузитьКолонку("Спецификация");
				/*Запрос = Новый Запрос("
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	Спецификации.Ссылка КАК Спефикация
		|ИЗ
		|	Справочник.СпецификацииНоменклатуры КАК Спецификации
		|ГДЕ
		|	Спецификации.Ссылка В (&МассивСпецификаций)
		|	И Спецификации.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Полная)
		|");*/
				//Запрос.УстановитьПараметр("МассивСпецификаций", МассивСпецификаций);
				//Выборка = Запрос.Выполнить().Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//ПолныеСпецификации.Вставить(Выборка.Спефикация, Истина);
				}
				//;;
			}
			//ПостроительЗапроса = Новый ПостроительЗапроса();
			//ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаПотребностей);
			//Отбор = ПостроительЗапроса.Отбор;
			//Отбор.Добавить("Материал");
			//Отбор.Добавить("ХарактеристикаМатериала");
			//Отбор.Добавить("Спецификация");
			//Отбор.Добавить("НоменклатурнаяГруппа");
			//Отбор.Добавить("Заказ");
			//Отбор.Добавить("ЗаказВыпуска");
			//Отбор.Добавить("ВидВыпуска");
			//Отбор.Добавить("СчетЗатрат");
			//Отбор.Добавить("СчетЗатратНУ", "СчетЗатратНУ");
			//Отбор.Добавить("СтатьяЗатрат");
			//Отбор.Материал.Использование = Истина;
			//Отбор.ХарактеристикаМатериала.Использование = ИспользуютсяХарактеристикиНоменклатуры;
			//Отбор.СчетЗатратНУ.ВидСравнения = ВидСравнения.ВИерархии;
			//Отбор.СтатьяЗатрат.ВидСравнения = ВидСравнения.ВСписке;
			//МассивКоэф = Новый Массив;
			/*// Определим признаки заполнения доп. колонок.
*/
			//ЕстьАналитикаНЗП = Ложь;
			//ЕстьЕдиницаИзмерения = Ложь;
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.РаспределениеМатериаловНаВыпуск")*/)
			{
				//ЕстьАналитикаНЗП = Истина;
				//ИспользоватьАналитикуНЗП = Истина;
			}
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.РаспределениеМатериаловНаВыпуск") ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОтчетПроизводстваЗаСмену")*/)
			{
				//ЕстьЕдиницаИзмерения = Истина;
			}
			if(true/*РаспределятьПропорциональноКоличеству*/)
			{
				//ИмяРеквизитаДляДоли = "Количество";
			}
			//ПредставлениеДокумента = "Заполнение документа: " + СокрЛП(СтруктураШапкиДокумента.Ссылка);
			//ТекстНазвание = ?(ЭтоВозвратныеОтходы, " возвратного отхода """, " материала """);
		}
		// ЗаполнитьРаспределениеМатериаловНаПродукцию()
		// Процедура заполняет табличную часть "Распределение возвратных отходов" по данным табличных частей "Возвратные отходы" и "Продукция".
		//

		public void ЗаполнитьРаспределениеВозвратныхОтходовНаПродукцию(/*СтруктураШапкиДокумента, ВозвратныеОтходы, ТаблицаПродукция, РаспределениеВозвратныхОтходов, СтруктураДопКолонок, Отбор, ПараметрыВыпускаПродукции = Неопределено*/)
		{
			//ЗаполнитьРаспределениеМатериаловНаПродукцию(СтруктураШапкиДокумента, ВозвратныеОтходы, ТаблицаПродукция, РаспределениеВозвратныхОтходов, СтруктураДопКолонок, Отбор, ПараметрыВыпускаПродукции, Истина);
		}
		// ЗаполнитьРаспределениеВозвратныхОтходовНаПродукцию()
		// Функция получает таблицу технологических операций, применяемых для выпуска продукции по указанным спецификациям.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ТаблицаПродукции - ТаблицаЗначений - Таблица выпущенной продукции документа
		//

		public object ПолучитьТаблицуТехнологическихОпераций(/*
	СтруктураШапкиДокумента,
	ТаблицаПродукции
	*/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ВидВыпуска,
	|	Номенклатура,
	|	ХарактеристикаНоменклатуры,
	|	СерияНоменклатуры,
	|	НоменклатурнаяГруппа,
	|	Спецификация,
	|	Заказ,
	|	СчетЗатрат,
	|	СчетЗатратНУ,
	|	ЕдиницаИзмерения,
	|	Коэффициент,
	|	ДоляСтоимости,	
	|	Количество
	|
	|ПОМЕСТИТЬ ТаблицаДокумента
	|ИЗ
	|	&ТаблицаПродукции КАК ТаблицаПродукции
	|
	|;
	|/////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	ТаблицаДокумента.ВидВыпуска,
	|	ТаблицаДокумента.Номенклатура,
	|	ТаблицаДокумента.ХарактеристикаНоменклатуры,
	|	ТаблицаДокумента.СерияНоменклатуры,
	|	ТаблицаДокумента.НоменклатурнаяГруппа,
	|	ТаблицаДокумента.Спецификация,
	|	ТаблицаДокумента.Заказ,
	|	ТаблицаДокумента.СчетЗатрат,
	|	ТаблицаДокумента.СчетЗатратНУ,
	|	ТаблицаДокумента.ДоляСтоимости,
	|
	|	ЕСТЬNULL(Маршрут.ТехнологическаяОперация, Неопределено) КАК ТехнологическаяОперация,
	|	СУММА(		
	|		ЕСТЬNULL(Маршрут.Количество, 1) *
	|		ТаблицаДокумента.Количество * 
	|		ВЫБОР КОГДА Не ТаблицаДокумента.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент ЕСТЬ NULL 
	|			И ТаблицаДокумента.Коэффициент <> 0
	|		ТОГДА 
	|			ТаблицаДокумента.Коэффициент / ТаблицаДокумента.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент 
	|		ИНАЧЕ
	|			1
	|		КОНЕЦ
	|	) КАК Количество
	|ИЗ
	|	ТаблицаДокумента КАК ТаблицаДокумента
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ТехнологическиеКартыСпецификацийПланирования.СрезПоследних(&КонДата,
	|			Спецификация В (
	|				ВЫБРАТЬ РАЗЛИЧНЫЕ
	|					Спецификация
	|				ИЗ
	|                  	ТаблицаДокумента КАК ТаблицаДокумента
	|				)
	|		) КАК РегистрТехнологическиеКарты
	|	ПО
	|		ТаблицаДокумента.Спецификация = РегистрТехнологическиеКарты.Спецификация
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		Справочник.ТехнологическиеКартыПроизводства.Маршрут КАК Маршрут
	|	ПО
	|		Маршрут.Ссылка = РегистрТехнологическиеКарты.ТехнологическаяКарта
	|
	|СГРУППИРОВАТЬ ПО
	|	ТаблицаДокумента.ВидВыпуска,
	|	ТаблицаДокумента.Номенклатура,
	|	ТаблицаДокумента.ХарактеристикаНоменклатуры,
	|	ТаблицаДокумента.СерияНоменклатуры,
	|	ТаблицаДокумента.НоменклатурнаяГруппа,
	|	ТаблицаДокумента.Спецификация,
	|	ТаблицаДокумента.Заказ,
	|	ТаблицаДокумента.СчетЗатрат,
	|	ТаблицаДокумента.СчетЗатратНУ,
	|	ТаблицаДокумента.Коэффициент,
	|	ТаблицаДокумента.ДоляСтоимости,
	|	Маршрут.ТехнологическаяОперация
	|
	|УПОРЯДОЧИТЬ ПО
	|	ТаблицаДокумента.ВидВыпуска,
	|	ТаблицаДокумента.Номенклатура,
	|	ТаблицаДокумента.ХарактеристикаНоменклатуры,
	|	ТаблицаДокумента.СерияНоменклатуры,
	|	ТаблицаДокумента.НоменклатурнаяГруппа,
	|	ТаблицаДокумента.Спецификация,
	|	ТаблицаДокумента.Заказ,
	|	ТаблицаДокумента.СчетЗатрат,
	|	ТаблицаДокумента.СчетЗатратНУ,
	|	ТаблицаДокумента.Коэффициент,
	|	ТаблицаДокумента.ДоляСтоимости,
	|	Маршрут.ТехнологическаяОперация
	|;
	|/////////////////////////////////////////////////////////////////////////////
	|
	|УНИЧТОЖИТЬ ТаблицаДокумента
	|
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("КонДата", Новый Граница(СтруктураШапкиДокумента.Дата, ВидГраницы.Включая));
			//Запрос.УстановитьПараметр("ТаблицаПродукции", ТаблицаПродукции);
			//РезультатЗапроса = Запрос.Выполнить();
			//ТаблицаТехнологическихОпераций = РезультатЗапроса.Выгрузить();
			return null;
		}
		// ПолучитьТаблицуТехнологическихОпераций()
		// Процедура заполняет табличную часть "Распределение прочих затрат" по данным табличных частей "Прочие затраты" и "Продукция".
		//

		public void ЗаполнитьРаспределениеПрочихЗатратНаПродукцию(/*СтруктураШапкиДокумента, ПрочиеЗатраты, Продукция, РаспределениеПрочихЗатрат*/)
		{
			//ОтражатьВУправленческомУчете = СтруктураШапкиДокумента.ОтражатьВУправленческомУчете;
			//ОтражатьВБухгалтерскомУчете = СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете;
			//ОтражатьВНалоговомУчете 	= СтруктураШапкиДокумента.ОтражатьВНалоговомУчете;
			if(true/*Не СтруктураШапкиДокумента.Свойство("ИспользоватьЗаказы", ИспользоватьЗаказы)*/)
			{
				//ИспользоватьЗаказы = Истина;
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("ИспользоватьНаработку", ИспользоватьНаработку)*/)
			{
				//ИспользоватьНаработку = Ложь;
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("РаспределятьПропорциональноКоличеству", РаспределятьПропорциональноКоличеству)*/)
			{
				//РаспределятьПропорциональноКоличеству = Ложь;
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("ИспользоватьРасширеннуюАналитику")*/)
			{
				/*ИспользоватьРасширеннуюАналитику = глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат") 
			И (глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат") <= СтруктураШапкиДокумента.Дата);*/
				//СтруктураШапкиДокумента.Вставить("ИспользоватьРасширеннуюАналитику", ИспользоватьРасширеннуюАналитику);
			}
			//СтруктураПараметров = Новый Структура;
			//СтруктураПараметров.Вставить("ОтражатьВУправленческомУчете", 	ОтражатьВУправленческомУчете);
			//СтруктураПараметров.Вставить("ОтражатьВБухгалтерскомУчете", 	ОтражатьВБухгалтерскомУчете);
			//СтруктураПараметров.Вставить("ОтражатьВНалоговомУчете", 		ОтражатьВНалоговомУчете);
			//СтруктураПараметров.Вставить("ОтражатьВМеждународномУчете", 	Ложь);
			//СтруктураПараметров.Вставить("Организация", 					СтруктураШапкиДокумента.Организация);
			//СтруктураПараметров.Вставить("Подразделение", 					СтруктураШапкиДокумента.Подразделение);
			//СтруктураПараметров.Вставить("ПодразделениеОрганизации", 		СтруктураШапкиДокумента.ПодразделениеОрганизации);
			//СтруктураПараметров.Вставить("Дата", КонецМесяца(СтруктураШапкиДокумента.Дата));
			//СтруктураПараметров.Вставить("БазаРаспределенияЗатрат");
			//СтруктураПараметров.Вставить("ПоказательБазыРаспределения");
			//СтруктураПараметров.Вставить("ТипЦен");
			//СтруктураПараметров.Вставить("РаспределятьНаСобственнуюПродукцию");
			//СтруктураПараметров.Вставить("РаспределятьНаПродукциюИзДавальческогоСырья");
			//СтруктураПараметров.Вставить("РаспределятьНаПродукциюСтороннегоПереработчика");
			//СтруктураПараметров.Вставить("РаспределятьНаНаработку");
			//СтруктураПараметров.Вставить("ИзменитьНаКоэффициент");
			//СтруктураПараметров.Вставить("Коэффициент");
			//СтруктураПараметров.Вставить("ИзменитьНаПроцент");
			//СтруктураПараметров.Вставить("Процент");
			//СтруктураПараметров.Вставить("ОкруглитьДо");
			//СтруктураПараметров.Вставить("ПорядокОкругления");
			//СтруктураПараметров.Вставить("СпособРаспределенияЗатрат");
			//СтруктураПараметров.Вставить("ОсновноеСырье");
			//СтруктураПараметров.Вставить("ТипФильтраПриРаспределенииЗатратНаВыпуск");
			//СтруктураПараметров.Вставить("Фильтры");
			//СтруктураПараметров.Вставить("СтатьяЗатрат");
			//СтруктураПараметров.Вставить("Фильтры");
			//СтруктураПараметров.Вставить("ЕстьБазаРаспределенияПоСтоимости",ложь);
			//СтруктураПараметров.Вставить("ЕстьБазаПоОбъемуПродаж",ложь);
			//ТаблицаПродукцииФильтр = Продукция.Выгрузить();
			if(true/*ТаблицаПродукцииФильтр.Колонки.Найти("ХарактеристикаНоменклатуры") = Неопределено*/)
			{
				//ТаблицаПродукцииФильтр.Колонки.Добавить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			}
			//ТаблицаПродукцииФильтр.Свернуть("Номенклатура, ХарактеристикаНоменклатуры", "");
			//ТаблицаПродукцииФильтр.Колонки.Номенклатура.Имя = "Продукция";
			//ТаблицаПродукцииФильтр.Колонки.ХарактеристикаНоменклатуры.Имя = "ХарактеристикаПродукции";
			/*// Формирование списка продукции.
*/
			//МассивПродукции = ТаблицаПродукцииФильтр.ВыгрузитьКолонку("Продукция");
			//СтруктураПараметров.Вставить("МассивПродукции", МассивПродукции);
			/*// Формирование списка характеристик.
*/
			//МассивХарактеристик = ТаблицаПродукцииФильтр.ВыгрузитьКолонку("ХарактеристикаПродукции");
			//СтруктураПараметров.Вставить("МассивХарактеристик", МассивХарактеристик);
			/*// Формирование таблицы номенклатурных групп.
*/
			//ТаблицаНоменклатурныхГруппФильтр = Продукция.Выгрузить();
			//ТаблицаНоменклатурныхГруппФильтр.Свернуть("НоменклатурнаяГруппа", "");
			//ТаблицаПрочиеЗатраты = ПрочиеЗатраты.Выгрузить();
			if(true/*ТаблицаПрочиеЗатраты.Колонки.Найти("СпособРаспределенияЗатратНаВыпуск") = Неопределено*/)
			{
				//ТаблицаПрочиеЗатраты.Колонки.Добавить("СпособРаспределенияЗатратНаВыпуск", Новый ОписаниеТипов("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск"));
			}
			//ТаблицаПрочиеЗатраты.Свернуть("СпособРаспределенияЗатратНаВыпуск, СтатьяЗатрат", "");
			/*// В таблице необходимо оставить статьи затрат, распределяемые по нормативам.
*/
			//ТаблицаПрочиеЗатраты.Свернуть("СпособРаспределенияЗатратНаВыпуск, СтатьяЗатрат", "");
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("Фильтры", Новый ОписаниеТипов("ТаблицаЗначений"));
			//ТаблицаПрочиеЗатраты.Колонки.Добавить("ТипФильтраПриРаспределенииЗатратНаВыпуск", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыФильтровПриРаспределенииЗатратНаВыпуск"));
			//КоличествоСтрокПрочиеЗатраты = ТаблицаПрочиеЗатраты.Количество();
			/*ТаблицаБазыРаспределения = ПроцедурыРасчетаБазыРаспределенияЗатрат.СформироватьТаблицуБазыРаспределенияЗатрат(
			СтруктураШапкиДокумента,
			СтруктураПараметров, 
			ТаблицаПрочиеЗатраты
		);*/
			//РаспределениеПрочихЗатрат.Очистить();
			//ТаблицаПрочиеЗатраты = ПрочиеЗатраты.Выгрузить();
			//ТаблицаРаспределениеПрочихЗатрат = РаспределениеПрочихЗатрат.Выгрузить();
			//ЕстьКолонкаПродукция = ТаблицаРаспределениеПрочихЗатрат.Колонки.Найти("Продукция") <> Неопределено;
			//ЕстьТехнологическаяОперация = ТаблицаПрочиеЗатраты.Колонки.Найти("ТехнологическаяОперация") <> Неопределено;
			if(true/*ЕстьТехнологическаяОперация*/)
			{
				/*ТаблицаПродукции = ПолучитьТаблицуТехнологическихОпераций(
			СтруктураШапкиДокумента,
			Продукция.Выгрузить()
		);*/
			}
			if(true/*ЕстьКолонкаПродукция*/)
			{
				if(true/*ТаблицаПродукции.Колонки.Найти("Продукция") <> Неопределено*/)
				{
					//ТаблицаПродукции.Колонки.Удалить("Продукция");
				}
				if(true/*ТаблицаПродукции.Колонки.Найти("ХарактеристикаПродукции") <> Неопределено*/)
				{
					//ТаблицаПродукции.Колонки.Удалить("ХарактеристикаПродукции");
				}
				if(true/*ТаблицаПродукции.Колонки.Найти("СерияПродукции") <> Неопределено*/)
				{
					//ТаблицаПродукции.Колонки.Удалить("СерияПродукции");
				}
				//ТаблицаПродукции.Колонки.Номенклатура.Имя = "Продукция";
				if(true/*ТаблицаПродукции.Колонки.Найти("ХарактеристикаНоменклатуры") <> Неопределено*/)
				{
					//ТаблицаПродукции.Колонки.ХарактеристикаНоменклатуры.Имя = "ХарактеристикаПродукции";
				}
				if(true/*ТаблицаПродукции.Колонки.Найти("СерияНоменклатуры") <> Неопределено*/)
				{
					//ТаблицаПродукции.Колонки.СерияНоменклатуры.Имя = "СерияПродукции";
				}
			}
			if(true/*ТаблицаПродукции.Колонки.Найти("ДоляСтоимости") <> Неопределено
	   И ТаблицаПродукции.Итог("ДоляСтоимости") > 0*/)
			{
				//ТаблицаПродукции.Колонки.ДоляСтоимости.Имя = "База";
			}
			//ТаблицаПродукции.Колонки.Добавить("БазаОстатокНЗП");
			if(true/*ТаблицаПродукции.Колонки.Найти("ВидВыпуска") = Неопределено*/)
			{
				//ТаблицаПродукции.Колонки.Добавить("ВидВыпуска",	Новый ОписаниеТипов("ПеречислениеСсылка.ВидыВыпуска"));
				//ТаблицаПродукции.ЗаполнитьЗначения(Перечисления.ВидыВыпуска.Выпуск, "ВидВыпуска");
			}
			if(true/*ТаблицаПродукции.Колонки.Найти("Заказ") = Неопределено*/)
			{
				//МассивТиповЗаказа = Новый Массив;
				//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказПокупателя"));
				//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказНаПроизводство"));
				//ТаблицаПродукции.Колонки.Добавить("Заказ", Новый ОписаниеТипов(МассивТиповЗаказа));
			}
			//ТаблицаПродукции.Колонки.Добавить("СпособРаспределенияЗатрат", 		Новый ОписаниеТипов("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск"));
			//ТаблицаПродукции.Колонки.Добавить("ОтражатьВУправленческомУчете", 	Новый ОписаниеТипов("Булево"));
			//ТаблицаПродукции.Колонки.Добавить("ОтражатьВБухгалтерскомУчете", 	Новый ОписаниеТипов("Булево"));
			//ТаблицаПродукции.Колонки.Добавить("ОтражатьВНалоговомУчете", 		Новый ОписаниеТипов("Булево"));
			//ТаблицаПродукции.Колонки.Добавить("БазаРегл",						Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла( 15, 2)));
			//ТаблицаПродукции.Колонки.Добавить("БазаНал",						Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла( 15, 2)));
			//МассивБаза = ТаблицаПродукции.ВыгрузитьКолонку("База");
			//ТаблицаПродукции.ЗагрузитьКолонку(МассивБаза, "БазаРегл");
			//ТаблицаПродукции.ЗагрузитьКолонку(МассивБаза, "БазаНал");
			//ТаблицаПродукции.ЗаполнитьЗначения(Справочники.СпособыРаспределенияЗатратНаВыпуск.ПустаяСсылка(), "СпособРаспределенияЗатрат");
			//ТаблицаПродукции.ЗаполнитьЗначения(ОтражатьВУправленческомУчете, 	"ОтражатьВУправленческомУчете");
			//ТаблицаПродукции.ЗаполнитьЗначения(ОтражатьВБухгалтерскомУчете, 	"ОтражатьВБухгалтерскомУчете");
			//ТаблицаПродукции.ЗаполнитьЗначения(ОтражатьВНалоговомУчете, 		"ОтражатьВНалоговомУчете");
			if(true/*ТаблицаБазыРаспределения = Неопределено*/)
			{
				//ТаблицаБазыРаспределения = ТаблицаПродукции.Скопировать();
			}
			if(true/*ТаблицаБазыРаспределения.Колонки.Найти("ТехнологическаяОперация") = Неопределено*/)
			{
				//ТаблицаБазыРаспределения.Колонки.Добавить("ТехнологическаяОперация",	Новый ОписаниеТипов("СправочникСсылка.ТехнологическиеОперации"));
			}
			//МассивКоэфУУ = Новый Массив;
			//МассивКоэфБУ = Новый Массив;
			//МассивКоэфНУ = Новый Массив;
			//ПостроительЗапроса = Новый ПостроительЗапроса();
			//ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаБазыРаспределения);
			//Отбор = ПостроительЗапроса.Отбор;
			//Отбор.Добавить("СпособРаспределенияЗатрат");
			//Отбор.Добавить("НоменклатурнаяГруппа");
			//Отбор.Добавить("Заказ");
			//Отбор.Добавить("ВидВыпуска");
			//Отбор.Добавить("ТехнологическаяОперация");
			//Отбор.ВидВыпуска.Использование = Истина;
			/*// Определим признаки заполнения доп. колонок.
*/
			//ЕстьАналитикаНЗП = Ложь;
			//ИмяРеквизитаДляДоли = "ДоляСтоимости";
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.РаспределениеПрочихЗатрат")*/)
			{
				//ЕстьАналитикаНЗП = Истина;
			}
			//ЕстьПодразделениеНЗП = ТаблицаПрочиеЗатраты.Колонки.Найти("ПодразделениеНЗП") <> Неопределено;
			//ЕстьСпособРаспределенияЗатратНаВыпуск = ТаблицаПрочиеЗатраты.Колонки.Найти("СпособРаспределенияЗатратНаВыпуск") <> Неопределено;
			//ЕстьСчетЗатрат = ТаблицаПрочиеЗатраты.Колонки.Найти("СчетЗатрат") <> Неопределено;
			//ЕстьСуммаРегл = ТаблицаПрочиеЗатраты.Колонки.Найти("СуммаРегл") <> Неопределено;
			//ЕстьСуммаНал = ТаблицаПрочиеЗатраты.Колонки.Найти("СуммаНал") <> Неопределено;
			//КолонкиРаспределениеПрочихЗатрат = "";
			//ТаблицаРаспределениеПрочихЗатрат.Свернуть(КолонкиРаспределениеПрочихЗатрат, "Сумма" + ?(ЕстьСуммаРегл, ", СуммаРегл", "") + ?(ЕстьСуммаНал, ", СуммаНал", ""));
			//РаспределениеПрочихЗатрат.Загрузить(ТаблицаРаспределениеПрочихЗатрат);
			//ПредставлениеДокумента = "Заполнение документа: " + СокрЛП(СтруктураШапкиДокумента.Ссылка);
		}
		// ЗаполнитьРаспределениеПрочихЗатратНаПродукцию()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ПРОВЕРКИ ЗАПОЛНЕНИЯ РЕКВИЗИТОВ
		// Процедура проверяет, что указаны производственные подразделения.
		//

		public void ПроверитьПроизводственныеПодразделения(/*СтруктураШапкиДокумента, Отказ, Заголовок*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				if(true/*ЗначениеЗаполнено(СтруктураШапкиДокумента.Подразделение)
		   И СтруктураШапкиДокумента.Подразделение.ВидПодразделения<>Перечисления.ВидыПодразделений.ОсновноеПроизводство
		   И СтруктураШапкиДокумента.Подразделение.ВидПодразделения<>Перечисления.ВидыПодразделений.ВспомогательноеПроизводство*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке("В шапке документа должно быть указано подразделение с видом ""Основное производство"" или ""Вспомогательное производство""!", Отказ, Заголовок);
				}
			}
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете или СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
			{
				if(true/*ЗначениеЗаполнено(СтруктураШапкиДокумента.ПодразделениеОрганизации)
		   И СтруктураШапкиДокумента.ПодразделениеОрганизации.ВидПодразделения<>Перечисления.ВидыПодразделений.ОсновноеПроизводство
		   И СтруктураШапкиДокумента.ПодразделениеОрганизации.ВидПодразделения<>Перечисления.ВидыПодразделений.ВспомогательноеПроизводство*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке("В шапке документа должно быть указано подразделение организации с видом ""Основное производство"" или ""Вспомогательное производство""!", Отказ, Заголовок);
				}
			}
		}
		// Процедура проверяет допустимость использования Счета затрат НУ
		// в документе
		//
		//	Параметры:
		//		ТабЧасть - табличная часть документа
		//		Отказ - флаг ошибки
		//		Заголовок - текст сообщения
		//

		public void ПроверитьЧтоНетСчетовКосвенныхРасходовНУ(/*ТабЧасть, ИмяТабЧасти, СписокСчетовКосвенныхРасходовНУ, Отказ, Заголовок*/)
		{
		}
		// Проверяет, что количество доделка не превышает количество выпуск.
		//
		// Параметры:
		//  ДокументОбъект    - объект проводимого документа,
		//  ИмяТабличнойЧасти - табличная часть документа,
		//  ТаблицаЗначений   - таблица значений, содержащая данные табличной части и признак услуги
		//  Отказ                      - флаг отказа в проведении.
		//  Заголовок                  - строка, заголовок сообщения об ошибке проведения.
		//

		public void ПроверитьКоличествоДоделка(/*ДокументОбъект, ИмяТабличнойЧасти, ТаблицаЗначений, 
                                                    Отказ, Заголовок*/)
		{
			//ПредставлениеТабличнойЧасти = ДокументОбъект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Представление();
			/*// Цикл по строкам таблицы значений.
*/
		}
		// ПроверитьЧтоНетУслуг)
		// Процедура проверяет допустимость использования статьи затрат
		// в документе
		//
		//	Параметры:
		//		ТабЧасть - табличная часть документа
		//		ИмяРеквСтатьяЗатрат - имя реквизита в котором содержится статья затрат
		//		ВидСтатьиЗатрат - строка с видом допустимых статей затрат
		//			Возможные значения:
		//				"Материальные" - в документе могут быть только мат. статьи затрат
		//				"Нематериальные" - в документе могут быть только не мат. статьи затрат
		//		Отказ - флаг ошибки
		//		Заголовок - текст сообщения
		//

		public void ПроверитьСтатьиЗатрат(/*ТабЧасть, ИмяРеквСтатьяЗатрат, ВидСтатьиЗатрат, Отказ, Заголовок*/)
		{
			//ИмяТабЧасти = Метаданные.НайтиПоТипу(ТипЗнч(ТабЧасть)).Представление();
			//ЕстьСумма = (Метаданные.НайтиПоТипу(ТипЗнч(ТабЧасть)).Реквизиты.Найти("Сумма") <> Неопределено);
		}
		// ПроверитьСтатьиЗатрат()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С ЛИМИТАМИ ОТПУСКА МАТЕРИАЛОВ
		// Функция возвращает флаг использования лимитов отпуска заказов.
		//

		public object ИспользоватьЛимитыОтпускаМатериалов(/*Сообщать = Ложь*/)
		{
			//Флаг = Константы.ИспользоватьЛимитыОтпускаМатериалов.Получить();
			if(true/*Не Флаг И Сообщать*/)
			{
				//ОбщегоНазначения.Сообщение("Использование лимитов отпуска материалов в данной конфигурации отключено.", СтатусСообщения.ОченьВажное);
			}
			return null;
		}
		// ИспользоватьЛимитыОтпускаМатериалов
		// Процедура добавляет в переданную таблицу признаки использования лимитов отпуска материалов.
		//

		public void ПолучитьИспользованиеЛимитовОтпускаМатериалов(/*ДокументОбъект, ИмяТабличнойЧасти, ТаблицаТоваров*/)
		{
			//МетаданныеДокумента = ДокументОбъект.Метаданные();
			//ИмяДокумента        = МетаданныеДокумента.Имя;
			//ИмяТаблицы          = ИмяДокумента + "." + СокрЛП(ИмяТабличнойЧасти);
			/*// Текст вложенного запроса, ограничивающего номенклатуру при получении остатков
*/
			/*ТекстЗапросаСписокНоменклатуры = "
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Номенклатура 
	|ИЗ
	|	Документ." + ИмяТаблицы +"
	|ГДЕ Ссылка = &ДокументСсылка";*/
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ЛимитыОтпуска.Номенклатура					КАК Номенклатура,
	|	ЛимитыОтпуска.ХарактеристикаНоменклатуры	КАК ХарактеристикаНоменклатуры,
	|	ЛимитыОтпуска.Подразделение           		КАК Подразделение,
	|	ЛимитыОтпуска.Склад							КАК Склад,
	|	1	КАК КонтролироватьЛимит
	|ИЗ
	|	РегистрСведений.ЛимитыОтпускаМатериалов.СрезПоследних(&КонДата,
	|														Номенклатура В (" + ТекстЗапросаСписокНоменклатуры + ")
	|														И КонтролироватьЛимит
	|														) КАК ЛимитыОтпуска
	|УПОРЯДОЧИТЬ ПО
	|	ЛимитыОтпуска.Номенклатура,
	|	ЛимитыОтпуска.ХарактеристикаНоменклатуры,
	|	ЛимитыОтпуска.Подразделение,
	|	ЛимитыОтпуска.Склад
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("КонДата",        КонецДня(ДокументОбъект.Дата));
			//Запрос.УстановитьПараметр("ДокументСсылка", ДокументОбъект.Ссылка);
			//РезультатЗапроса = Запрос.Выполнить().Выгрузить();
			/*;
	
	ТаблицаТоваров.Колонки.Добавить("КонтролироватьЛимит",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 0)));*/
			//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(РезультатЗапроса, ТаблицаТоваров);
			//ТаблицаТоваров.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, Подразделение, Склад", "КонтролироватьЛимит, Отпущено, ОтпущеноСверхЛимита");
		}
		// ПолучитьИспользованиеЛимитовОтпускаМатериалов()
		// Возвращает результат запроса для формирования движений по регистру ЛимитноЗаборныеКарты.
		// Запросом получаются из документа данные о движении материалов, по которым в регистре
		// сведений ЛимитыОтпускаМатериалов указана необходимость контролировать лимит.
		//
		// Параметры
		//  ДокументОбъект - объект документа: ТребованиеНакладная или ОприходованиеМатериаловИзПроизводства
		//
		// Возвращаемое значение
		//  Результат запроса

		public object СформироватьЗапросЛимитыОтпускаМатериаловПоТабличнойЧасти(/*ДокументОбъект*/)
		{
			/*// Используются разные запросы, для разных документов т.к. 
*/
			/*//  - в документе ТребованиеНакладная склад указывается в табличной части
*/
			/*//  - из документа ТребованиеНакладная получаем значения для заполнения ресурсов
*/
			/*//    Отпущено и ОтпущеноСверхЛимита, 
*/
			/*//    а из документа ОприходованиеМатериаловИзПроизводства - ресурса Возвращено
*/
			if(true/*ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ТребованиеНакладная")*/)
			{
				/*ТекстЗапроса = "
		|ВЫБРАТЬ
		|	ТабличнаяЧасть.Ссылка.Подразделение 								КАК Подразделение,
		|	ТабличнаяЧасть.Склад 												КАК Склад,
		|	ТабличнаяЧасть.Номенклатура											КАК Номенклатура,
		|	ТабличнаяЧасть.ХарактеристикаНоменклатуры							КАК ХарактеристикаНоменклатуры,
		|	Количество * Коэффициент / ЕдиницаИзмерения.Коэффициент 			КАК Отпущено,
		|	ОтпущеноСверхЛимита * Коэффициент / ЕдиницаИзмерения.Коэффициент 	КАК ОтпущеноСверхЛимита
		|ИЗ
		|	Документ.ТребованиеНакладная.Материалы КАК ТабличнаяЧасть
		|	
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
		|		ВЫБРАТЬ
		|			ЛимитыОтпуска.Номенклатура 					КАК ЛимитыНоменклатура,
		|			ЛимитыОтпуска.ХарактеристикаНоменклатуры 	КАК ЛимитыХарактеристикаНоменклатуры,
		|			ЛимитыОтпуска.Склад 						КАК ЛимитыСклад,
		|			МАКСИМУМ(ЛимитыОтпуска.КонтролироватьЛимит) КАК КонтролироватьЛимит
		|		ИЗ
		|			РегистрСведений.ЛимитыОтпускаМатериалов.СрезПоследних(&ДатаДок,
		|				(Подразделение,Склад,Номенклатура,ХарактеристикаНоменклатуры) 
		|						В (ВЫБРАТЬ
		|							ТабличнаяЧасть.Ссылка.Подразделение КАК Подразделение,
		|							ТабличнаяЧасть.Склад КАК Склад,
		|							ТабличнаяЧасть.Номенклатура,
		|							ТабличнаяЧасть.ХарактеристикаНоменклатуры
		|						ИЗ
		|							Документ.ТребованиеНакладная.Материалы КАК ТабличнаяЧасть
		|						ГДЕ
		|							ТабличнаяЧасть.Ссылка = &Ссылка)) КАК ЛимитыОтпуска
		|		СГРУППИРОВАТЬ ПО
		|			ЛимитыОтпуска.Номенклатура,
		|			ЛимитыОтпуска.ХарактеристикаНоменклатуры,
		|			ЛимитыОтпуска.Склад
		|			
		|		ИМЕЮЩИЕ 
		|			МАКСИМУМ(ЛимитыОтпуска.КонтролироватьЛимит) = ИСТИНА ) КАК ЛимитыОтпуска
		|		ПО 
		|			ТабличнаяЧасть.Номенклатура 				= ЛимитыОтпуска.ЛимитыНоменклатура
		|			И ТабличнаяЧасть.ХарактеристикаНоменклатуры = ЛимитыОтпуска.ЛимитыХарактеристикаНоменклатуры
		|			И ТабличнаяЧасть.Склад                      = ЛимитыОтпуска.ЛимитыСклад
		|ГДЕ
		|	ТабличнаяЧасть.Ссылка = &Ссылка
		|
		|УПОРЯДОЧИТЬ ПО
		|	ТабличнаяЧасть.НомерСтроки";*/
			}
			/*// Выполняем запрос
*/
			//Запрос = Новый Запрос(ТекстЗапроса);
			//Запрос.УстановитьПараметр("ДатаДок",	ДокументОбъект.Дата);
			//Запрос.УстановитьПараметр("Ссылка",		ДокументОбъект.Ссылка);
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ЗАПОЛНЕНИЯ РЕКВИЗИТОВ ТАБЛИЧНОЙ ЧАСТИ ПЕРЕД ЗАПИСЬЮ ДОКУМЕНТОВ
		// Процедура заполняет статью затрат по реквизитам шапки документа во всех строках
		// заданной табличной части.
		//

		public void ЗаполнитьСтатьюЗатратВСтрокахТабЧасти(/*ДокументОбъект, ТабЧасть*/)
		{
		}
		// ЗаполнитьСтатьюЗатратВСтрокахТабЧасти()
		// Функция определяет спецификацию по умолчанию для номенклатуры, характеристики и подразделения
		// на указанную дату
		//
		// Параметры
		//  Номенклатура               - СправочникСсылка.Номенклатура: номенклатура, спецификацию которой
		//                               требуется определить
		//  ХарактеристикаНоменклатуры - СправочникСсылка.ХарактеристикиНоменклатуры: характеристика номенклатуры,
		//                               спецификацию которой требуется определить
		//  Момент                     - Дата: момент времени, на который определяется спецификация
		//  Подразделение              - СправочникСсылка.Подразделения: подразделение, для которого
		//                  	         требуется определить спецификацию
		//
		// Возвращаемое значение:
		//   Справочники.СпецификацииНоменклатуры - спецификация, определенная для указанного сочетания параметров как основная
		//

		public object ОпределитьСпецификациюПоУмолчанию(/*Номенклатура, ХарактеристикаНоменклатуры = Неопределено, Момент, Подразделение = Неопределено*/)
		{
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры КАК СпецификацияНоменклатуры
	|ИЗ
	|	(ВЫБРАТЬ ПЕРВЫЕ 1
	|		ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры КАК СпецификацияНоменклатуры,
	|		1 КАК Приоритет
	|	ИЗ
	|		РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(
	|			&Дата,
	|			Номенклатура = &Номенклатура
	|			    И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры
	|			    И Подразделение = &Подразделение) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры,
	|		2
	|	ИЗ
	|		РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(
	|			&Дата,
	|			Номенклатура = &Номенклатура
	|			    И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры
	|			    И Подразделение = &ПодразделениеПустаяСсылка) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры,
	|		3
	|	ИЗ
	|		РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(
	|			&Дата,
	|			Номенклатура = &Номенклатура
	|			    И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры,
	|		4
	|	ИЗ
	|		РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(
	|			&Дата,
	|			Номенклатура = &Номенклатура
	|			    И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатурыПустаяСсылка) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры,
	|		5
	|	ИЗ
	|		РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних) КАК ОсновныеСпецификацииНоменклатуры
	|
	|УПОРЯДОЧИТЬ ПО
	|	ОсновныеСпецификацииНоменклатуры.Приоритет");*/
			//Запрос.УстановитьПараметр("Дата", ?(ТипЗнч(Момент) = Тип("Дата"), Момент, ТекущаяДата()));
			//Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
			//Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры", ?(ХарактеристикаНоменклатуры = Неопределено, Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка(), ХарактеристикаНоменклатуры));
			//Запрос.УстановитьПараметр("ХарактеристикаНоменклатурыПустаяСсылка", Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка());
			//Запрос.УстановитьПараметр("Подразделение", ?(Подразделение = Неопределено, Справочники.Подразделения.ПустаяСсылка(), Подразделение));
			//Запрос.УстановитьПараметр("ПодразделениеПустаяСсылка", Справочники.Подразделения.ПустаяСсылка());
			//Выборка = Запрос.Выполнить().Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
				//Спецификация = Выборка.СпецификацияНоменклатуры;
			}
			return null;
		}
		// ОпределитьСпецификациюПоУмолчанию()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С ФОРМАМИ
		//Процедура открывает форму выбора справочника Подразделения либо ПодразделенияОрганизации с отбором по производственным подразделениям
		//

		public void ОткрытьФормуВыбораПроизводственногоПодразделения(/*Элемент, СтандартнаяОбработка, ПодразделениеОрганизации = Ложь*/)
		{
			//ТаблицаОтбора = РаботаСДиалогами.СоздатьТаблицуДляОтбора();
			//СписокВидовПодразделений = Новый СписокЗначений();
			//СписокВидовПодразделений.Добавить(Перечисления.ВидыПодразделений.ОсновноеПроизводство);
			//СписокВидовПодразделений.Добавить(Перечисления.ВидыПодразделений.ВспомогательноеПроизводство);
			//НоваяСтрока = ТаблицаОтбора.Добавить();
			//НоваяСтрока.Имя 		 = "ВидПодразделения";
			//НоваяСтрока.ВидСравнения = ВидСравнения.ВСписке;
			//НоваяСтрока.Значение 	 = СписокВидовПодразделений;
			if(true/*ПодразделениеОрганизации*/)
			{
				//РаботаСДиалогами.НачалоВыбораПодразделенияОрганизации(ТаблицаОтбора, Элемент, СтандартнаяОбработка);
			}
		}
	}
}
